<?xml version='1.0' encoding='UTF-8'?>
<!DOCTYPE html PUBLIC '-//W3C//DTD XHTML+RDFa 1.1//EN' 'http://www.w3.org/MarkUp/DTD/xhtml-rdfa-2.dtd'>
<html dir="ltr" xmlns="http://www.w3.org/1999/xhtml" typeof="bibo:Document">
<head>
<title>JSON-LD 1.0</title>
<meta http-equiv="content-type" content="text/html; charset=UTF-8" />
<style type="text/css">
  .diff { font-weight:bold; color:#0a3; }
  table, thead, tr, td { padding: 5px; border-width: 1px; border-spacing: 0px; border-style: solid; border-collapse: collapse; }
  .atrisk-head { font-style: italic; }
</style>
<style type="text/css">
/* --- INLINES --- */
em.rfc2119 {
    text-transform:     lowercase;
    font-variant:       small-caps;
    font-style:         normal;
    color:              #900;
}

h1 acronym, h2 acronym, h3 acronym, h4 acronym, h5 acronym, h6 acronym, a acronym,
h1 abbr, h2 abbr, h3 abbr, h4 abbr, h5 abbr, h6 abbr, a abbr {
    border: none;
}

dfn {
    font-weight:    bold;
}

a.internalDFN {
    color:  inherit;
    border-bottom:  1px solid #99c;
    text-decoration:    none;
}

a.externalDFN {
    color:  inherit;
    border-bottom:  1px dotted #ccc;
    text-decoration:    none;
}

a.bibref {
    text-decoration:    none;
}

cite .bibref {
    font-style: normal;
}

code {
    color:  #ff4500;
}


/* --- --- */
ol.algorithm { counter-reset:numsection; list-style-type: none; }
ol.algorithm li { margin: 0.5em 0; }
ol.algorithm li:before { font-weight: bold; counter-increment: numsection; content: counters(numsection, ".") ") "; }

/* --- TOC --- */
.toc a, .tof a {
    text-decoration:    none;
}

a .secno, a .figno {
    color:  #000;
}

ul.tof, ol.tof {
    list-style: none outside none;
}

.caption {
    margin-top: 0.5em;
    font-style:   italic;
}

/* --- TABLE --- */
table.simple {
    border-spacing: 0;
    border-collapse:    collapse;
    border-bottom:  3px solid #005a9c;
}

.simple th {
    background: #005a9c;
    color:  #fff;
    padding:    3px 5px;
    text-align: left;
}

.simple th[scope="row"] {
    background: inherit;
    color:  inherit;
    border-top: 1px solid #ddd;
}

.simple td {
    padding:    3px 10px;
    border-top: 1px solid #ddd;
}

.simple tr:nth-child(even) {
    background: #f0f6ff;
}

/* --- DL --- */
.section dd > p:first-child {
    margin-top: 0;
}

.section dd > p:last-child {
    margin-bottom: 0;
}

.section dd {
    margin-bottom:  1em;
}

.section dl.attrs dd, .section dl.eldef dd {
    margin-bottom:  0;
}
</style><style type="text/css">/* --- EXAMPLES --- */
div.example-title {
    min-width: 7.5em;
    color: #b9ab2d;
}
div.example-title span {
    text-transform: uppercase;
}
aside.example, div.example, div.illegal-example {
    padding: 0.5em;
    margin: 1em 0;
    position: relative;
    clear: both;
}
div.illegal-example { color: red }
div.illegal-example p { color: black }
aside.example, div.example {
    padding: .5em;
    border-left-width: .5em;
    border-left-style: solid;
    border-color: #e0cb52;
    background: #fcfaee;
}

aside.example div.example {
    border-left-width: .1em;
    border-color: #999;
    background: #fff;
}
aside.example div.example div.example-title {
    color: #999;
}
</style><style type="text/css">/* --- ISSUES/NOTES --- */
div.issue-title, div.note-title {
    padding-right:  1em;
    min-width: 7.5em;
    color: #b9ab2d;
}
div.issue-title { color: #e05252; }
div.note-title { color: #2b2; }
div.issue-title span, div.note-title span {
    text-transform: uppercase;
}
div.note, div.issue {
    margin-top: 1em;
    margin-bottom: 1em;
}
.note > p:first-child, .issue > p:first-child { margin-top: 0 }
.issue, .note {
    padding: .5em;
    border-left-width: .5em;
    border-left-style: solid;
}
div.issue, div.note {
    padding: 1em 1.2em 0.5em;
    margin: 1em 0;
    position: relative;
    clear: both;
}
span.note, span.issue { padding: .1em .5em .15em; }

.issue {
    border-color: #e05252;
    background: #fbe9e9;
}
.note {
    border-color: #52e052;
    background: #e9fbe9;
}


</style><link rel="stylesheet" href="//www.w3.org/StyleSheets/TR/W3C-WD" />
<style type='text/css'>
.diff-old-a {
  font-size: smaller;
  color: red;
}

.diff-new { background-color: yellow; }
.diff-chg { background-color: lime; }
.diff-new:before,
.diff-new:after
    { content: "\2191" }
.diff-chg:before, .diff-chg:after
    { content: "\2195" }
.diff-old { text-decoration: line-through; background-color: #FBB; }
.diff-old:before,
.diff-old:after
    { content: "\2193" }
:focus { border: thin red solid}
</style>
</head>

<body><div class="head">
<p>
<a href="http://www.w3.org/">
<img width="72" height="48" src="http://www.w3.org/Icons/w3c_home" alt="W3C" />
</a>
</p>
<h1 class="title" id="title">
JSON-LD
<del class="diff-old">Syntax
</del>
1.0
</h1>
<h2 id="subtitle">
A
<del class="diff-old">Context-based
JSON
</del>
<ins class="diff-chg">JSON-based
</ins>
Serialization
for
<del class="diff-old">Linking
</del>
<ins class="diff-chg">Linked
</ins>
Data
</h2>
<h2 id="w3c-last-call-working-draft-11-april-2013">
<abbr title="World Wide Web Consortium">
W3C
</abbr>
<ins class="diff-chg">Last
Call
</ins>
Working
Draft
<del class="diff-old">12
July
2012
</del>
<ins class="diff-chg">11
April
2013
</ins>
</h2>
<dl>
<dt>
This
version:
</dt>
<dd>
<del class="diff-old">http://www.w3.org/TR/2012/WD-json-ld-syntax-20120712/
</del>
<a href="http://www.w3.org/TR/2013/WD-json-ld-20130411/">
<ins class="diff-chg">http://www.w3.org/TR/2013/WD-json-ld-20130411/
</ins>
</a>
</dd>
<dt>
Latest
published
version:
</dt>
<dd>
<del class="diff-old">http://www.w3.org/TR/json-ld-syntax/
</del>
<a href="http://www.w3.org/TR/json-ld/">
<ins class="diff-chg">http://www.w3.org/TR/json-ld/
</ins>
</a>
</dd>
<dt>
Latest
editor's
draft:
</dt>
<dd>
<del class="diff-old">http://dvcs.w3.org/hg/json-ld/raw-file/default/spec/latest/json-ld-syntax/index.html
</del>
<a href="http://dvcs.w3.org/hg/json-ld/raw-file/default/spec/latest/json-ld/index.html">
<ins class="diff-chg">http://dvcs.w3.org/hg/json-ld/raw-file/default/spec/latest/json-ld/index.html
</ins></a></dd><dt><ins class="diff-chg">
Previous
version:
</ins></dt><dd><a href="http://www.w3.org/TR/2012/WD-json-ld-syntax-20120712/"><ins class="diff-chg">
http://www.w3.org/TR/2012/WD-json-ld-20120712/
</ins>
</a>
</dd>
<dt>
Editors:
</dt>
<dd rel="bibo:editor">
<span typeof="foaf:Person">
<a rel="foaf:homepage" property="foaf:name" content="Manu Sporny" href="http://manu.sporny.org/">
Manu
Sporny
</a>,
<a rel="foaf:workplaceHomepage" href="http://digitalbazaar.com/">
Digital
Bazaar
</a>
</span>
</dd>
<dd rel="bibo:editor">
<span typeof="foaf:Person">
<a rel="foaf:homepage" property="foaf:name" content="Gregg Kellogg" href="http://greggkellogg.net/">
Gregg
Kellogg
</a>,
<a rel="foaf:workplaceHomepage" href="http://kellogg-assoc.com/">
Kellogg
Associates
</a>
</span>
</dd>
<dd rel="bibo:editor">
<span typeof="foaf:Person">
<a rel="foaf:homepage" property="foaf:name" content="Markus Lanthaler" href="http://www.markus-lanthaler.com/">
Markus
Lanthaler
</a>,
<a rel="foaf:workplaceHomepage" href="http://www.tugraz.at/">
Graz
University
of
Technology
</a>
</span>
</dd>
<dt>
Authors:
</dt>
<dd rel="dcterms:contributor">
<span typeof="foaf:Person">
<a rel="foaf:homepage" property="foaf:name" content="Manu Sporny" href="http://digitalbazaar.com/">
Manu
Sporny
</a>,
<a rel="foaf:workplaceHomepage" href="http://digitalbazaar.com/">
Digital
Bazaar
</a>
</span>
</dd>
<dd rel="dcterms:contributor">
<span typeof="foaf:Person">
<a rel="foaf:homepage" property="foaf:name" content="Dave Longley" href="http://digitalbazaar.com/">
Dave
Longley
</a>,
<a rel="foaf:workplaceHomepage" href="http://digitalbazaar.com/">
Digital
Bazaar
</a>
</span>
</dd>
<dd rel="dcterms:contributor">
<span typeof="foaf:Person">
<a rel="foaf:homepage" property="foaf:name" content="Gregg Kellogg" href="http://greggkellogg.net/">
Gregg
Kellogg
</a>,
<a rel="foaf:workplaceHomepage" href="http://kellogg-assoc.com/">
Kellogg
Associates
</a>
</span>
</dd>
<dd rel="dcterms:contributor">
<span typeof="foaf:Person">
<a rel="foaf:homepage" property="foaf:name" content="Markus Lanthaler" href="http://www.markus-lanthaler.com/">
Markus
Lanthaler
</a>,
<a rel="foaf:workplaceHomepage" href="http://www.tugraz.at/">
Graz
University
of
Technology
</a>
</span>
</dd>
<dd rel="dcterms:contributor">
<span typeof="foaf:Person">
<del class="diff-old">Mark
Birbeck
,
Sidewinder
Labs
</del>
<a rel="foaf:homepage" property="foaf:name" content="Niklas Lindström" href="http://neverspace.net/">
<ins class="diff-chg">Niklas
Lindström
</ins></a>
</span>
</dd>
</dl>
<p>
This
document
is
also
available
in
this
non-normative
format:
<a rel="alternate" href="diff-20120712.html">
diff
to
previous
version
</a>
</p>
<p class="copyright">
<a href="http://www.w3.org/Consortium/Legal/ipr-notice#Copyright">
Copyright
</a>
©
<del class="diff-old">2010-2012
</del>
<ins class="diff-chg">2010-2013
</ins>
<a href="http://www.w3.org/">
<abbr title="World Wide Web Consortium">
W3C
</abbr>
</a>
<sup>
®
</sup>
(
<a href="http://www.csail.mit.edu/">
<abbr title="Massachusetts Institute of Technology">
MIT
</abbr>
</a>,
<a href="http://www.ercim.eu/">
<abbr title="European Research Consortium for Informatics and Mathematics">
ERCIM
</abbr>
</a>,
<a href="http://www.keio.ac.jp/">
Keio
</a>,
<a href="http://ev.buaa.edu.cn/">
<ins class="diff-new">Beihang
</ins>
</a>
),
All
Rights
Reserved.
<abbr title="World Wide Web Consortium">
W3C
</abbr>
<a href="http://www.w3.org/Consortium/Legal/ipr-notice#Legal_Disclaimer">
liability
</a>,
<a href="http://www.w3.org/Consortium/Legal/ipr-notice#W3C_Trademarks">
trademark
</a>
and
<a href="http://www.w3.org/Consortium/Legal/copyright-documents">
document
use
</a>
rules
apply.
</p>
<hr />
</div>
<div id="abstract" class="introductory section" property="dcterms:abstract" datatype="" typeof="bibo:Chapter" resource="#abstract" rel="bibo:chapter">
<h2>
Abstract
</h2>
<p>
JSON
has
proven
to
be
a
highly
useful
object
serialization
and
messaging
format.
<del class="diff-old">In
an
attempt
</del>
<ins class="diff-chg">This
specification
defines
JSON-LD,
a
JSON-based
format
</ins>
to
<del class="diff-old">harmonize
the
representation
of
</del>
<ins class="diff-chg">serialize
</ins>
Linked
<del class="diff-old">Data
in
</del>
<ins class="diff-chg">Data.
The
syntax
is
designed
to
not
disturb
already
deployed
systems
running
on
</ins>
JSON,
<del class="diff-old">this
specification
outlines
</del>
<ins class="diff-chg">but
provide
</ins>
a
<del class="diff-old">common
</del>
<ins class="diff-chg">smooth
upgrade
path
from
</ins>
JSON
<del class="diff-old">representation
format
for
expressing
directed
graphs;
mixing
both
</del>
<ins class="diff-chg">to
JSON-LD.
It
is
primarily
intended
to
be
a
way
to
use
</ins>
Linked
Data
<ins class="diff-new">in
Web-based
programming
environments,
to
build
interoperable
Web
services,
</ins>
and
<del class="diff-old">non-Linked
</del>
<ins class="diff-chg">to
store
Linked
</ins>
Data
in
<del class="diff-old">a
single
document.
</del>
<ins class="diff-chg">JSON-based
storage
engines.
</ins>
</p>
</div>
<div id="sotd" class="introductory section" typeof="bibo:Chapter" resource="#sotd" rel="bibo:chapter">
<h2>
Status
of
This
Document
</h2>
<p>
<em>
This
section
describes
the
status
of
this
document
at
the
time
of
its
publication.
Other
documents
may
supersede
this
document.
A
list
of
current
<abbr title="World Wide Web Consortium">
W3C
</abbr>
publications
and
the
latest
revision
of
this
technical
report
can
be
found
in
the
<a href="http://www.w3.org/TR/">
<abbr title="World Wide Web Consortium">
W3C
</abbr>
technical
reports
index
</a>
at
http://www.w3.org/TR/.
</em>
</p>
<p>
This
document
has
been
under
development
for
over
<del class="diff-old">18
</del>
<ins class="diff-chg">25
</ins>
months
in
the
JSON
for
Linking
Data
Community
Group.
The
document
has
recently
been
transferred
to
the
RDF
Working
Group
for
review,
improvement,
and
<del class="diff-old">publication
along
the
Recommendation
track.
While
this
is
a
First
Public
Working
Draft
publication,
the
</del>
<ins class="diff-chg">publication.
The
</ins>
specification
has
undergone
significant
development,
review,
and
changes
during
the
course
of
the
last
<del class="diff-old">18
months
and
is
more
mature
than
the
First
Public
Working
Draft
status
implies.
</del>
<ins class="diff-chg">25
months.
</ins>
There
are
<del class="diff-old">currently
</del>
<ins class="diff-chg">several
independent
</ins>
<a href="http://json-ld.org/#impl">
<del class="diff-old">five
</del>
interoperable
implementations
</a>
of
this
<del class="diff-old">specification.
There
is
</del>
<ins class="diff-chg">specification
and
</ins>
a
fairly
complete
test
suite
<del class="diff-old">and
a
live
JSON-LD
editor
that
is
capable
of
demonstrating
the
features
described
in
this
document.
While
development
on
implementations,
the
test
suite
and
the
live
editor
will
continue,
they
are
believed
to
be
mature
enough
to
be
integrated
into
a
non-production
system
at
this
point
in
time
with
the
expectation
that
they
could
be
used
in
a
production
system
within
the
next
year.
There
are
a
number
of
ways
that
one
may
participate
in
the
development
of
this
specification:
If
you
want
to
make
sure
that
your
feedback
is
formally
addressed
by
the
RDF
Working
Group,
you
should
send
it
to
public-rdf-comments:
public-rdf-comments@w3.org
Ad-hoc
technical
discussion
primarily
occurs
on
the
public
community
mailing
list:
public-linked-json@w3.org
</del>
<ins class="diff-chg">[
</ins><cite>
<del class="diff-old">Public
JSON-LD
Community
Group
teleconferences
are
held
on
Tuesdays
at
1500UTC
every
week.
RDF
Working
Group
teleconferences
are
held
on
Wednesdays
at
1500UTC
every
week.
Participation
is
limited
to
RDF
Working
Group
members.
Specification
bugs
and
issues
should
be
reported
in
the
issue
tracker
</del>
<a class="bibref" href="#bib-JSON-LD-TESTS">
<ins class="diff-chg">JSON-LD-TESTS
</ins>
</a>
<del class="diff-old">if
you
do
not
want
to
send
an
e-mail
to
the
public-rdf-comments
mailing
list.
</del>
<del class="diff-old">Source
code
for
the
specification
can
be
found
on
Github.
The
#json-ld
IRC
channel
is
available
for
real-time
discussion
on
irc.freenode.net.
</del>
</cite>
<ins class="diff-chg">].
</ins></p>
<p>
This
document
was
published
by
the
<a href="http://www.w3.org/2011/rdf-wg/">
RDF
Working
Group
</a>
as
a
<del class="diff-old">First
Public
</del>
<ins class="diff-chg">Last
Call
</ins>
Working
Draft.
This
document
is
intended
to
become
a
<abbr title="World Wide Web Consortium">
W3C
</abbr>
Recommendation.
If
you
wish
to
make
comments
regarding
this
document,
please
send
them
to
<a href="mailto:public-rdf-comments@w3.org">
public-rdf-comments@w3.org
</a>
(
<a href="mailto:public-rdf-comments-request@w3.org?subject=subscribe">
subscribe
</a>,
<a href="http://lists.w3.org/Archives/Public/public-rdf-comments/">
archives
</a>
).
<ins class="diff-new">The
Last
Call
period
ends
11
May
2013.
</ins>
All
<del class="diff-old">feedback
is
</del>
<ins class="diff-chg">comments
are
</ins>
welcome.
</p>
<div style="padding: 1em; margin: 1em; border: 1px solid red;">
<p>
<ins class="diff-new">The
Working
Group
welcomes
reports
of
implementations,
sent
to
the
comments
address.
If
we
gather
sufficient
evidence
of
interoperable
implementations,
the
group
may
request
to
skip
Call
for
Implementations
(Candidate
Recommendation)
drafts
and
have
the
next
round
of
publications
be
Proposed
Recommendations.
</ins></p></div>
<p>
Publication
as
a
<ins class="diff-new">Last
Call
</ins>
Working
Draft
does
not
imply
endorsement
by
the
<abbr title="World Wide Web Consortium">
W3C
</abbr>
Membership.
This
is
a
draft
document
and
may
be
updated,
replaced
or
obsoleted
by
other
documents
at
any
time.
It
is
inappropriate
to
cite
this
document
as
other
than
work
in
progress.
</p>
<p>
This
<ins class="diff-new">is
a
Last
Call
Working
Draft
and
thus
the
Working
Group
has
determined
that
this
document
has
satisfied
the
relevant
technical
requirements
and
is
sufficiently
stable
to
advance
through
the
Technical
Recommendation
process.
</ins></p><p><ins class="diff-new">
This
</ins>
document
was
produced
by
a
group
operating
under
the
<a href="http://www.w3.org/Consortium/Patent-Policy-20040205/">
5
February
2004
<abbr title="World Wide Web Consortium">
W3C
</abbr>
Patent
Policy
</a>.
<abbr title="World Wide Web Consortium">
W3C
</abbr>
maintains
a
<a href="http://www.w3.org/2004/01/pp-impl/46168/status" rel="disclosure">
public
list
of
any
patent
disclosures
</a>
made
in
connection
with
the
deliverables
of
the
group;
that
page
also
includes
instructions
for
disclosing
a
patent.
An
individual
who
has
actual
knowledge
of
a
patent
which
the
individual
believes
contains
<a href="http://www.w3.org/Consortium/Patent-Policy-20040205/#def-essential">
Essential
Claim(s)
</a>
must
disclose
the
information
in
accordance
with
<a href="http://www.w3.org/Consortium/Patent-Policy-20040205/#sec-Disclosure">
section
6
of
the
<abbr title="World Wide Web Consortium">
W3C
</abbr>
Patent
Policy
</a>.
</p>
</div>
<div class="section" id="toc">
<h2 class="introductory">
Table
of
Contents
</h2>
<ul class="toc">
<li class="tocline">
<a href="#introduction" class="tocxref">
<span class="secno">
1.
</span>
Introduction
</a>
<ul class="toc">
<li class="tocline">
<a href="#how-to-read-this-document" class="tocxref">
<span class="secno">
1.1
</span>
How
to
Read
this
Document
</a>
</li>
</ul>
</li>
<li class="tocline">
<a href="#design-goals-and-rationale" class="tocxref">
<span class="secno">
2.
</span>
Design
Goals
and
Rationale
</a>
</li>
<li class="tocline">
<a href="#terminology" class="tocxref">
<span class="secno">
3.
</span>
<del class="diff-old">Basic
Concepts
</del>
<ins class="diff-chg">Terminology
</ins>
</a>
<ul class="toc">
<li class="tocline">
<a href="#general-terminology" class="tocxref">
<span class="secno">
3.1
</span>
<del class="diff-old">Linking
Data
</del>
<ins class="diff-chg">General
Terminology
</ins>
</a>
</li>
<li class="tocline">
<a href="#syntax-tokens-and-keywords" class="tocxref">
<span class="secno">
<del class="diff-old">3.1.1
</del>
<ins class="diff-chg">3.2
</ins>
</span>
Syntax
Tokens
and
Keywords
</a>
</li>
</ul>
</li>
<li class="tocline">
<a href="#conformance" class="tocxref">
<span class="secno">
<del class="diff-old">3.1.2
</del>
<ins class="diff-chg">4.
</ins>
</span>
<del class="diff-old">The
Context
</del>
<ins class="diff-chg">Conformance
</ins>
</a>
</li>
<li class="tocline">
<a href="#basic-concepts" class="tocxref">
<span class="secno">
<del class="diff-old">3.1.3
</del>
<ins class="diff-chg">5.
</ins>
</span>
<del class="diff-old">From
JSON
to
JSON-LD
</del>
<ins class="diff-chg">Basic
Concepts
</ins>
</a>
<ul class="toc">
<li class="tocline">
<a href="#the-context" class="tocxref">
<span class="secno">
<ins class="diff-chg">5.1
</ins></span><ins class="diff-chg">
The
Context
</ins></a>
</li>
<li class="tocline">
<a href="#iris" class="tocxref">
<span class="secno">
<del class="diff-old">3.2
</del>
<ins class="diff-chg">5.2
</ins>
</span>
IRIs
</a>
</li>
<li class="tocline">
<a href="#node-identifiers" class="tocxref">
<span class="secno">
<del class="diff-old">3.3
</del>
<ins class="diff-chg">5.3
</ins>
</span>
<del class="diff-old">Identifying
the
Subject
</del>
<ins class="diff-chg">Node
Identifiers
</ins>
</a>
</li>
<li class="tocline">
<a href="#specifying-the-type" class="tocxref">
<span class="secno">
<del class="diff-old">3.4
</del>
<ins class="diff-chg">5.4
</ins>
</span>
Specifying
the
Type
</a>
</li>
</ul>
</li>
<li class="tocline">
<a href="#advanced-concepts" class="tocxref">
<span class="secno">
<del class="diff-old">3.5
</del>
<ins class="diff-chg">6.
</ins>
</span>
<del class="diff-old">String
Internationalization
</del>
<ins class="diff-chg">Advanced
Concepts
</ins>
</a>
<ul class="toc">
<li class="tocline">
<a href="#base-iri" class="tocxref">
<span class="secno">
<del class="diff-old">3.6
</del>
<ins class="diff-chg">6.1
</ins>
</span>
<del class="diff-old">JSON-LD
Syntax
</del>
<ins class="diff-chg">Base
</ins><abbr title="Internationalized Resource Identifier"><ins class="diff-chg">
IRI
</ins></abbr>
</a>
</li>
<li class="tocline">
<a href="#default-vocabulary" class="tocxref">
<span class="secno">
<del class="diff-old">4.
</del>
<ins class="diff-chg">6.2
</ins>
</span>
<del class="diff-old">Advanced
Concepts
</del>
<ins class="diff-chg">Default
Vocabulary
</ins>
</a>
</li>
<li class="tocline">
<a href="#compact-iris" class="tocxref">
<span class="secno">
<del class="diff-old">4.1
</del>
<ins class="diff-chg">6.3
</ins>
</span>
Compact
IRIs
</a>
</li>
<li class="tocline">
<a href="#typed-values" class="tocxref">
<span class="secno">
<del class="diff-old">4.2
</del>
<ins class="diff-chg">6.4
</ins>
</span>
Typed
Values
</a>
</li>
<li class="tocline">
<a href="#type-coercion" class="tocxref">
<span class="secno">
<del class="diff-old">4.3
</del>
<ins class="diff-chg">6.5
</ins>
</span>
<del class="diff-old">External
Contexts
</del>
<ins class="diff-chg">Type
Coercion
</ins>
</a>
</li>
<li class="tocline">
<a href="#embedding" class="tocxref">
<span class="secno">
<del class="diff-old">4.4
</del>
<ins class="diff-chg">6.6
</ins>
</span>
<del class="diff-old">Referencing
Contexts
from
JSON
Documents
</del>
<ins class="diff-chg">Embedding
</ins>
</a>
</li>
<li class="tocline">
<a href="#advanced-context-usage" class="tocxref">
<span class="secno">
<del class="diff-old">4.5
</del>
<ins class="diff-chg">6.7
</ins>
</span>
<del class="diff-old">Expanded
Term
Definition
</del>
<ins class="diff-chg">Advanced
Context
Usage
</ins>
</a>
</li>
<li class="tocline">
<a href="#interpreting-json-as-json-ld" class="tocxref">
<span class="secno">
<del class="diff-old">4.6
</del>
<ins class="diff-chg">6.8
</ins>
</span>
<del class="diff-old">Type
Coercion
</del>
<ins class="diff-chg">Interpreting
JSON
as
JSON-LD
</ins></a></li><li class="tocline"><a href="#string-internationalization" class="tocxref"><span class="secno"><ins class="diff-chg">
6.9
</ins></span><ins class="diff-chg">
String
Internationalization
</ins>
</a>
</li>
<li class="tocline">
<a href="#iri-expansion-within-a-context" class="tocxref">
<span class="secno">
<del class="diff-old">4.7
</del>
<ins class="diff-chg">6.10
</ins>
</span>
<abbr title="Internationalized Resource Identifier">
IRI
</abbr>
Expansion
<del class="diff-old">Within
</del>
<ins class="diff-chg">within
</ins>
a
Context
</a>
</li>
<li class="tocline">
<a href="#sets-and-lists" class="tocxref">
<span class="secno">
<del class="diff-old">4.8
</del>
<ins class="diff-chg">6.11
</ins>
</span>
Sets
and
Lists
</a>
</li>
<li class="tocline">
<a href="#reverse-properties" class="tocxref">
<span class="secno">
<del class="diff-old">4.9
</del>
<ins class="diff-chg">6.12
</ins>
</span>
<del class="diff-old">Embedding
</del>
<ins class="diff-chg">Reverse
Properties
</ins>
</a>
</li>
<li class="tocline">
<a href="#named-graphs" class="tocxref">
<span class="secno">
<del class="diff-old">4.10
</del>
<ins class="diff-chg">6.13
</ins>
</span>
Named
Graphs
</a>
</li>
<li class="tocline">
<a href="#identifying-blank-nodes" class="tocxref">
<span class="secno">
<del class="diff-old">4.11
</del>
<ins class="diff-chg">6.14
</ins>
</span>
Identifying
<del class="diff-old">Unlabeled
</del>
<ins class="diff-chg">Blank
</ins>
Nodes
</a>
</li>
<li class="tocline">
<a href="#aliasing-keywords" class="tocxref">
<span class="secno">
<del class="diff-old">4.12
</del>
<ins class="diff-chg">6.15
</ins>
</span>
Aliasing
Keywords
</a>
</li>
<li class="tocline">
<a href="#data-indexing" class="tocxref">
<span class="secno">
<ins class="diff-new">6.16
</ins></span><ins class="diff-new">
Data
Indexing
</ins></a></li><li class="tocline">
<a href="#expanded-document-form" class="tocxref">
<span class="secno">
<del class="diff-old">4.13
</del>
<ins class="diff-chg">6.17
</ins>
</span>
Expanded
Document
Form
</a>
</li>
<li class="tocline">
<a href="#compact-document-form" class="tocxref">
<span class="secno">
<del class="diff-old">4.14
</del>
<ins class="diff-chg">6.18
</ins>
</span>
Compact
Document
Form
</a>
</li>
<li class="tocline">
<a href="#flattened-document-form" class="tocxref">
<span class="secno">
<ins class="diff-new">6.19
</ins></span><ins class="diff-new">
Flattened
Document
Form
</ins></a></li><li class="tocline"><a href="#embedding-json-ld-in-html-documents" class="tocxref"><span class="secno"><ins class="diff-new">
6.20
</ins></span><ins class="diff-new">
Embedding
JSON-LD
in
HTML
Documents
</ins></a></li>
</ul>
</li>
<li class="tocline">
<a href="#data-model" class="tocxref">
<span class="secno">
A.
</span>
<del class="diff-old">JSON-LD
Authoring
Guidelines
</del>
<ins class="diff-chg">Data
Model
</ins>
</a>
</li>
<li class="tocline">
<a href="#json-ld-grammar" class="tocxref">
<span class="secno">
B.
</span>
<del class="diff-old">Relationship
to
other
RDF
Formats
</del>
<ins class="diff-chg">JSON-LD
Grammar
</ins>
</a>
<ul class="toc">
<li class="tocline">
<a href="#terms" class="tocxref">
<span class="secno">
B.1
</span>
<del class="diff-old">RDF
</del>
<ins class="diff-chg">Terms
</ins>
</a>
</li>
<li class="tocline">
<a href="#node-objects" class="tocxref">
<span class="secno">
B.2
</span>
<del class="diff-old">Turtle
</del>
<ins class="diff-chg">Node
Objects
</ins>
</a>
</li>
<li class="tocline">
<a href="#value-objects" class="tocxref">
<span class="secno">
<del class="diff-old">B.2.1
</del>
<ins class="diff-chg">B.3
</ins>
</span>
<del class="diff-old">Prefix
definitions
</del>
<ins class="diff-chg">Value
Objects
</ins>
</a>
</li>
<li class="tocline">
<a href="#lists-and-sets" class="tocxref">
<span class="secno">
<del class="diff-old">B.2.2
</del>
<ins class="diff-chg">B.4
</ins>
</span>
<del class="diff-old">Embedding
</del>
<ins class="diff-chg">Lists
and
Sets
</ins>
</a>
</li>
<li class="tocline">
<a href="#language-maps" class="tocxref">
<span class="secno">
<del class="diff-old">B.2.3
</del>
<ins class="diff-chg">B.5
</ins>
</span>
<del class="diff-old">Lists
</del>
<ins class="diff-chg">Language
Maps
</ins></a></li><li class="tocline"><a href="#index-maps" class="tocxref"><span class="secno"><ins class="diff-chg">
B.6
</ins></span><ins class="diff-chg">
Index
Maps
</ins></a></li><li class="tocline"><a href="#context-definitions" class="tocxref"><span class="secno"><ins class="diff-chg">
B.7
</ins></span><ins class="diff-chg">
Context
Definitions
</ins>
</a>
</li>
</ul>
</li>
<li class="tocline">
<a href="#relationship-to-rdf" class="tocxref">
<span class="secno">
<ins class="diff-new">C.
</ins></span><ins class="diff-new">
Relationship
to
RDF
</ins></a><ul class="toc"><li class="tocline"><a href="#transformation-from-json-ld-to-rdf" class="tocxref"><span class="secno"><ins class="diff-new">
C.1
</ins></span><ins class="diff-new">
Transformation
from
JSON-LD
to
RDF
</ins></a></li></ul></li><li class="tocline"><a href="#relationship-to-other-linked-data-formats" class="tocxref"><span class="secno"><ins class="diff-new">
D.
</ins></span><ins class="diff-new">
Relationship
to
Other
Linked
Data
Formats
</ins></a><ul class="toc"><li class="tocline"><a href="#turtle" class="tocxref"><span class="secno"><ins class="diff-new">
D.1
</ins></span><ins class="diff-new">
Turtle
</ins></a></li><li class="tocline">
<a href="#rdfa" class="tocxref">
<span class="secno">
<del class="diff-old">B.3
</del>
<ins class="diff-chg">D.2
</ins>
</span>
RDFa
</a>
</li>
<li class="tocline">
<a href="#microformats" class="tocxref">
<span class="secno">
<del class="diff-old">B.4
</del>
<ins class="diff-chg">D.3
</ins>
</span>
Microformats
</a>
</li>
<li class="tocline">
<a href="#microdata" class="tocxref">
<span class="secno">
<del class="diff-old">B.5
</del>
<ins class="diff-chg">D.4
</ins>
</span>
Microdata
</a>
</li>
</ul>
</li>
<li class="tocline">
<a href="#iana-considerations" class="tocxref">
<span class="secno">
<del class="diff-old">C.
</del>
<ins class="diff-chg">E.
</ins>
</span>
IANA
Considerations
</a>
</li>
<li class="tocline">
<a href="#acknowledgements" class="tocxref">
<span class="secno">
<del class="diff-old">D.
</del>
<ins class="diff-chg">F.
</ins>
</span>
Acknowledgements
</a>
</li>
<li class="tocline">
<a href="#references" class="tocxref">
<span class="secno">
<del class="diff-old">E.
</del>
<ins class="diff-chg">G.
</ins>
</span>
References
</a>
<ul class="toc">
<li class="tocline">
<a href="#normative-references" class="tocxref">
<span class="secno">
<del class="diff-old">E.1
</del>
<ins class="diff-chg">G.1
</ins>
</span>
Normative
references
</a>
</li>
<li class="tocline">
<a href="#informative-references" class="tocxref">
<span class="secno">
<del class="diff-old">E.2
</del>
<ins class="diff-chg">G.2
</ins>
</span>
Informative
references
</a>
</li>
</ul>
</li>
</ul>
</div>
<div class="informative section" id="introduction">
<h2>
<span class="secno">
1.
</span>
Introduction
</h2>
<p>
<em>
This
section
is
non-normative.
</em>
</p>
<p>
<del class="diff-old">JSON,
as
specified
in
[
RFC4627
</del>
<del class="diff-old">],
is
a
simple
language
for
representing
data
on
the
Web.
</del>
<dfn title="linked-data" id="dfn-linked-data">
Linked
Data
</dfn>
is
a
technique
for
creating
a
network
of
inter-connected
data
across
different
<del class="diff-old">Web
</del>
documents
and
Web
sites.
<del class="diff-old">A
document
in
this
data
network
is
typically
identified
using
an
</del>
<ins class="diff-chg">In
general,
Linked
Data
has
four
properties:
1)
it
uses
</ins>
<a class="tref internalDFN" title="iri" href="#dfn-iri">
<del class="diff-old">IRI
</del>
<ins class="diff-chg">IRIs
</ins>
</a>
<del class="diff-old">(Internationalized
Resource
Identifier).
A
software
program
can
typically
follow
an
IRI
just
like
you
follow
a
URL
by
putting
</del>
<ins class="diff-chg">to
name
things;
2)
</ins>
it
<del class="diff-old">into
your
browser's
location
bar.
By
following
IRIs,
a
software
program
can
find
</del>
<ins class="diff-chg">uses
HTTP
</ins><a class="tref internalDFN" title="iri" href="#dfn-iri"><ins class="diff-chg">
IRIs
</ins></a><ins class="diff-chg">
for
those
names;
3)
the
name
</ins><a class="tref internalDFN" title="iri" href="#dfn-iri"><ins class="diff-chg">
IRIs
</ins></a>,<ins class="diff-chg">
when
dereferenced,
provide
</ins>
more
information
about
the
<del class="diff-old">document
</del>
<ins class="diff-chg">thing;
</ins>
and
<ins class="diff-new">4)
</ins>
the
<del class="diff-old">thing
s
that
the
document
describes.
</del>
<ins class="diff-chg">data
expresses
links
to
data
on
other
Web
sites.
</ins>
These
<del class="diff-old">things
may
also
be
identified
using
IRI
s.
The
IRI
allows
a
software
program
</del>
<ins class="diff-chg">properties
allow
data
published
on
the
Web
</ins>
to
<ins class="diff-new">work
much
like
Web
pages
do
today.
One
can
</ins>
start
at
one
<del class="diff-old">document
</del>
<ins class="diff-chg">piece
of
Linked
Data,
</ins>
and
follow
<ins class="diff-new">the
</ins>
links
to
other
<del class="diff-old">documents
or
things
in
order
to
learn
more
about
all
</del>
<ins class="diff-chg">pieces
</ins>
of
<del class="diff-old">the
documents
and
things
described
</del>
<ins class="diff-chg">data
that
are
hosted
</ins>
on
<ins class="diff-new">different
sites
across
</ins>
the
Web.
</p>
<p>
JSON-LD
is
<del class="diff-old">designed
as
</del>
a
lightweight
syntax
<del class="diff-old">that
can
</del>
<ins class="diff-chg">to
serialize
</ins><a class="tref internalDFN" title="linked-data" href="#dfn-linked-data"><ins class="diff-chg">
Linked
Data
</ins></a><ins class="diff-chg">
in
JSON
[
</ins><cite><a class="bibref" href="#bib-RFC4627"><ins class="diff-chg">
RFC4627
</ins></a></cite><ins class="diff-chg">
].
Its
design
allows
existing
JSON
to
</ins>
be
<del class="diff-old">used
</del>
<ins class="diff-chg">transformed
</ins>
to
<del class="diff-old">express
</del>
Linked
Data
<del class="diff-old">.
It
</del>
<ins class="diff-chg">with
minimal
changes.
JSON-LD
</ins>
is
primarily
intended
to
be
a
way
to
use
Linked
Data
in
<del class="diff-old">Javascript
and
other
</del>
Web-based
programming
<del class="diff-old">environments.
It
is
also
useful
when
building
inter-operable
</del>
<ins class="diff-chg">environments,
to
build
interoperable
</ins>
Web
<del class="diff-old">services
</del>
<ins class="diff-chg">services,
</ins>
and
<del class="diff-old">when
storing
</del>
<ins class="diff-chg">to
store
</ins>
Linked
Data
in
JSON-based
<del class="diff-old">document
</del>
storage
engines.
<del class="diff-old">It
</del>
<ins class="diff-chg">Since
JSON-LD
</ins>
is
<del class="diff-old">practical
and
designed
to
be
as
simple
as
possible,
utilizing
</del>
<ins class="diff-chg">100%
compatible
with
JSON,
</ins>
the
large
number
of
JSON
parsers
and
libraries
available
<del class="diff-old">today.
</del>
<ins class="diff-chg">today
can
be
reused.
In
addition
to
all
the
features
JSON
provides,
JSON-LD
introduces:
</ins>
</p>
<del class="diff-old">The
syntax
does
not
necessarily
require
applications
</del>
<ul>
<li>
<ins class="diff-chg">a
universal
identifier
mechanism
for
</ins><a class="tref internalDFN" title="json-object" href="#dfn-json-object"><ins class="diff-chg">
JSON
objects
</ins></a><ins class="diff-chg">
via
the
use
of
</ins><a class="tref internalDFN" title="iri" href="#dfn-iri"><ins class="diff-chg">
IRIs
</ins></a>,</li><li><ins class="diff-chg">
a
way
</ins>
to
<del class="diff-old">change
</del>
<ins class="diff-chg">disambiguate
keys
shared
among
different
JSON
documents
by
mapping
them
to
</ins><a class="tref internalDFN" title="iri" href="#dfn-iri"><ins class="diff-chg">
IRIs
</ins></a><ins class="diff-chg">
via
a
</ins><a class="tref internalDFN" title="context" href="#dfn-context"><ins class="diff-chg">
context
</ins></a>,</li><li><ins class="diff-chg">
a
mechanism
in
which
a
value
in
a
</ins><a class="tref internalDFN" title="json-object" href="#dfn-json-object"><ins class="diff-chg">
JSON
object
</ins></a><ins class="diff-chg">
may
refer
to
a
</ins><a class="tref internalDFN" title="json-object" href="#dfn-json-object"><ins class="diff-chg">
JSON
object
</ins></a><ins class="diff-chg">
on
a
different
site
on
the
Web,
</ins></li><li><ins class="diff-chg">
the
ability
to
annotate
</ins><a class="tref internalDFN" title="string" href="#dfn-string"><ins class="diff-chg">
strings
</ins></a><ins class="diff-chg">
with
</ins>
their
<del class="diff-old">JSON,
but
allows
</del>
<ins class="diff-chg">language,
</ins></li><li><ins class="diff-chg">
a
way
to
associate
datatypes
with
values
such
as
dates
and
times,
</ins></li><li><ins class="diff-chg">
and
a
facility
to
express
</ins>
one
<ins class="diff-new">or
more
directed
graphs,
such
as
a
social
network,
in
a
single
document.
</ins></li></ul><p><ins class="diff-new">
Developers
that
require
any
of
the
facilities
listed
above
or
need
</ins>
to
<del class="diff-old">easily
add
meaning
by
simply
adding
</del>
<ins class="diff-chg">serialize
an
RDF
graph
</ins>
or
<del class="diff-old">referencing
</del>
<ins class="diff-chg">dataset
[
</ins><cite><a class="bibref" href="#bib-RDF11-CONCEPTS"><ins class="diff-chg">
RDF11-CONCEPTS
</ins></a></cite><ins class="diff-chg">
]
in
</ins>
a
<del class="diff-old">context.
</del>
<ins class="diff-chg">JSON-based
syntax
will
find
JSON-LD
of
interest.
</ins>
The
syntax
is
designed
to
not
disturb
already
deployed
systems
running
on
JSON,
but
provide
a
smooth
upgrade
path
from
JSON
to
JSON-LD.
<del class="diff-old">Finally,
</del>
<ins class="diff-chg">Since
</ins>
the
<del class="diff-old">format
is
intended
to
be
easy
to
parse,
efficient
</del>
<ins class="diff-chg">shape
of
such
data
varies
wildly,
JSON-LD
features
mechanisms
</ins>
to
<del class="diff-old">generate,
and
only
requires
</del>
<ins class="diff-chg">reshape
documents
into
</ins>
a
<del class="diff-old">very
small
memory
footprint
in
order
to
operate.
</del>
<ins class="diff-chg">deterministic
structure
which
simplifies
their
processing.
</ins>
</p>
<div class="informative section" id="how-to-read-this-document">
<h3>
<span class="secno">
1.1
</span>
How
to
Read
this
Document
</h3>
<p>
<em>
This
section
is
non-normative.
</em>
</p>
<p>
This
document
is
a
detailed
specification
for
a
serialization
of
Linked
Data
in
JSON.
The
document
is
primarily
intended
for
the
following
audiences:
</p>
<ul>
<li>
Software
developers
<del class="diff-old">that
</del>
<ins class="diff-chg">who
</ins>
want
to
encode
Linked
Data
in
a
<del class="diff-old">way
</del>
<ins class="diff-chg">variety
of
programming
languages
</ins>
that
<del class="diff-old">is
cross-language
compatible
via
</del>
<ins class="diff-chg">can
use
</ins>
JSON.
</li>
<li>
Software
developers
<del class="diff-old">that
</del>
<ins class="diff-chg">who
want
to
convert
existing
JSON
to
JSON-LD.
</ins></li><li><ins class="diff-chg">
Software
developers
who
</ins>
want
to
understand
the
design
decisions
and
language
syntax
for
JSON-LD.
</li>
<li>
Software
developers
<del class="diff-old">that
</del>
<ins class="diff-chg">who
</ins>
want
to
implement
processors
and
APIs
for
JSON-LD.
</li>
</ul>
<p>
<del class="diff-old">This
specification
does
not
describe
the
programming
interfaces
for
</del>
<ins class="diff-chg">A
companion
document,
</ins>
the
JSON-LD
<del class="diff-old">Syntax.
The
</del>
<ins class="diff-chg">Processing
Algorithms
and
API
</ins>
specification
<del class="diff-old">that
describes
the
programming
interfaces
for
JSON-LD
documents
is
the
JSON-LD
Application
Programming
Interface
</del>
[
<cite>
<a class="bibref" href="#bib-JSON-LD-API">
JSON-LD-API
</a>
</cite>
<del class="diff-old">].
</del>
<ins class="diff-chg">],
specifies
how
to
work
with
JSON-LD
at
a
higher
level
by
providing
a
standard
library
interface
for
common
JSON-LD
operations.
</ins>
</p>
<p>
To
understand
the
basics
in
this
specification
you
must
first
be
familiar
with
JSON,
which
is
detailed
in
[
<cite>
<a class="bibref" href="#bib-RFC4627">
RFC4627
</a>
</cite>
].
</p>
<del class="diff-old">JSON
[
RFC4627
]
defines
several
terms
which
are
used
throughout
this
document:
JSON
object
An
object
structure
is
represented
as
a
pair
of
curly
brackets
surrounding
zero
or
more
name-value
pairs.
A
name
is
a
string
.
A
single
colon
comes
after
each
name,
separating
the
name
from
the
value.
A
single
comma
separates
a
value
from
a
following
name.
The
names
within
an
object
should
be
unique.
array
In
JSON,
an
array
is
an
ordered
sequence
of
zero
or
more
values.
An
array
is
represented
as
square
brackets
surrounding
zero
or
more
values
that
are
separated
by
commas.
While
JSON-LD
uses
the
same
array
representation
as
JSON,
the
collection
is
unordered
by
default.
While
order
is
preserved
in
regular
JSON
arrays,
it
is
not
in
regular
JSON-LD
arrays
unless
specific
markup
is
provided
(see
Sets
and
Lists
).
string
A
string
is
a
sequence
of
zero
or
more
Unicode
characters,
wrapped
in
double
quotes,
using
backslash
escapes
(if
necessary).
A
character
is
represented
as
a
single
character
string.
number
A
number
is
similar
to
that
used
in
most
programming
languages,
except
that
the
octal
and
hexadecimal
formats
are
not
used
and
that
leading
zeros
are
not
allowed.
true
and
false
Values
that
are
used
to
express
one
of
two
possible
boolean
states.
null
The
null
value
is
used
to
make
the
JSON-LD
processor
&quot;forget&quot;
any
previously
defined
JSON
key
that
is
associated
with
the
null
value.
If
a
previous
definition
doesn't
exist,
the
entire
key-value
is
ignored.
If
a
previous
definition
of
the
key
does
exist,
the
previous
definition
is
undefined.
subject
definition
A
JSON
object
used
to
represent
a
subject
and
one
or
more
properties
of
that
subject.
A
JSON
object
is
a
subject
definition
if
it
does
not
contain
they
keys
@value
,
@list
or
@set
and
it
has
one
or
more
keys
other
than
@id
.
subject
reference
A
JSON
object
used
to
reference
a
subject
having
only
the
@id
key.
</del>
</div>
</div>
<div class="informative section" id="design-goals-and-rationale">
<h2>
<span class="secno">
2.
</span>
Design
Goals
and
Rationale
</h2>
<p>
<em>
This
section
is
non-normative.
</em>
</p>
<p>
<del class="diff-old">A
number
of
design
goals
were
established
before
</del>
<ins class="diff-chg">JSON-LD
satisfies
</ins>
the
<del class="diff-old">creation
of
this
markup
language:
</del>
<ins class="diff-chg">following
design
goals:
</ins>
</p>
<dl>
<dt>
Simplicity
</dt>
<dd>
No
extra
processors
or
software
libraries
should
be
necessary
to
use
JSON-LD
in
its
most
basic
form.
The
language
will
provide
developers
with
a
very
easy
learning
curve.
Developers
<del class="diff-old">need
</del>
only
<ins class="diff-new">need
to
</ins>
know
JSON
and
two
<a class="tref internalDFN" title="keyword" href="#dfn-keyword">
keywords
</a>
(
<code>
@context
</code>
and
<code>
@id
</code>
)
to
use
the
basic
functionality
in
JSON-LD.
</dd>
<dt>
Compatibility
</dt>
<dd>
<del class="diff-old">The
</del>
<ins class="diff-chg">A
</ins>
JSON-LD
<del class="diff-old">markup
</del>
<ins class="diff-chg">document
</ins>
must
be
100%
compatible
with
JSON.
This
ensures
that
all
of
the
standard
JSON
libraries
work
seamlessly
with
JSON-LD
documents.
</dd>
<dt>
Expressiveness
</dt>
<dd>
The
syntax
must
be
able
to
<del class="diff-old">express
</del>
<ins class="diff-chg">serialize
</ins>
directed
<del class="diff-old">graphs,
which
have
been
proven
to
be
able
to
express
</del>
<ins class="diff-chg">graphs.
This
ensures
that
</ins>
almost
every
real
world
data
<del class="diff-old">model.
</del>
<ins class="diff-chg">model
can
be
expressed.
</ins>
</dd>
<dt>
Terseness
</dt>
<dd>
The
JSON-LD
syntax
must
be
very
terse
and
human
readable,
requiring
as
little
effort
as
possible
from
the
developer.
</dd>
<dt>
Zero
Edits,
most
of
the
time
</dt>
<dd>
JSON-LD
must
<del class="diff-old">provide
a
mechanism
that
allows
developers
</del>
<ins class="diff-chg">make
the
transition
</ins>
to
<del class="diff-old">specify
context
</del>
<ins class="diff-chg">JSON-LD
as
simple
as
possible.
In
many
cases,
zero
edits
to
the
JSON
document
and
the
addition
of
one
line
to
the
HTTP
response
should
suffice
(see
</ins><a class="sectionRef sec-ref" href="#interpreting-json-as-json-ld"><ins class="diff-chg">
section
6.8
Interpreting
JSON
as
JSON-LD
</ins>
</a>
<del class="diff-old">in
a
way
that
is
out-of-band.
</del>
<ins class="diff-chg">).
</ins>
This
allows
organizations
that
have
already
deployed
large
JSON-based
infrastructure
to
<del class="diff-old">add
meaning
to
their
JSON
documents
</del>
<ins class="diff-chg">use
JSON-LD's
features
</ins>
in
a
way
that
is
not
disruptive
to
their
day-to-day
operations
and
is
transparent
to
their
current
customers.
<del class="diff-old">At
times,
</del>
<ins class="diff-chg">However,
there
are
times
where
</ins>
mapping
JSON
to
a
graph
representation
<del class="diff-old">can
become
difficult.
</del>
<ins class="diff-chg">is
more
complex
than
a
simple
one-line
change.
</ins>
In
these
instances,
rather
than
<del class="diff-old">having
</del>
<ins class="diff-chg">extending
</ins>
JSON-LD
<ins class="diff-new">to
</ins>
support
an
esoteric
use
case,
we
chose
not
to
support
the
use
<del class="diff-old">case
and
support
a
simplified
syntax
instead.
So,
while
</del>
<ins class="diff-chg">case.
While
</ins>
Zero
Edits
is
a
<ins class="diff-new">design
</ins>
goal,
it
is
not
always
possible
without
adding
great
complexity
to
the
language.
<del class="diff-old">One-pass
Processing
JSON-LD
supports
one-pass
processing,
which
results
in
a
very
small
memory
footprint
</del>
<ins class="diff-chg">We
should
focus
on
simplicity
</ins>
when
<del class="diff-old">processing
documents.
For
example,
to
expand
a
JSON-LD
document
from
a
compacted
form,
only
one
pass
is
required
over
the
data.
</del>
<ins class="diff-chg">possible.
</ins>
</dd>
</dl>
</div>
<div class="normative section" id="terminology">
<h2>
<span class="secno">
3.
</span>
<del class="diff-old">Basic
Concepts
</del>
<ins class="diff-chg">Terminology
</ins>
</h2>
<del class="diff-old">This
section
is
normative.
JSON-LD
is
designed
to
ensure
that
Linked
Data
concepts
can
be
marked
up
in
a
way
that
is
simple
to
understand
and
create
by
Web
authors.
In
many
cases,
regular
JSON
markup
can
become
Linked
Data
with
the
simple
addition
of
a
context
.
As
more
JSON-LD
features
are
used,
more
semantics
are
added
to
the
JSON
markup.
</del>
<div class="normative section" id="general-terminology">
<h3>
<span class="secno">
3.1
</span>
<del class="diff-old">Linking
Data
</del>
<ins class="diff-chg">General
Terminology
</ins>
</h3>
<p>
<del class="diff-old">The
following
definition
for
Linked
Data
is
</del>
<ins class="diff-chg">This
document
uses
</ins>
the
<del class="diff-old">one
that
will
be
used
for
this
specification.
Linked
Data
is
a
set
of
documents,
each
containing
a
representation
of
a
linked
data
graph
.
A
linked
data
graph
is
an
unordered
labeled
directed
graph,
where
nodes
are
subject
s
or
object
s,
and
edges
are
labeled
using
properties
.
A
subject
is
any
node
</del>
<ins class="diff-chg">following
terms
as
defined
</ins>
in
<del class="diff-old">a
linked
data
graph
with
at
least
one
outgoing
edge.
A
subject
should
be
labeled
with
an
</del>
<ins class="diff-chg">JSON
[
</ins><cite>
<del class="diff-old">IRI
</del>
<a class="bibref" href="#bib-RFC4627">
<ins class="diff-chg">RFC4627
</ins></a>
<del class="diff-old">(an
Internationalized
Resource
Identifier
as
described
</del>
</cite>
<ins class="diff-chg">].
Refer
to
the
</ins><em><ins class="diff-chg">
JSON
Grammar
</ins></em><ins class="diff-chg">
section
</ins>
in
[
<cite>
<del class="diff-old">RFC3987
</del>
<a class="bibref" href="#bib-RFC4627">
<ins class="diff-chg">RFC4627
</ins>
</a>
</cite>
<del class="diff-old">]).
An
</del>
<ins class="diff-chg">]
for
formal
definitions.
</ins></p><dl><dt><dfn title="json-object" id="dfn-json-object"><ins class="diff-chg">
JSON
</ins>
object
</dfn>
<del class="diff-old">is
a
node
in
a
linked
data
graph
with
at
least
one
incoming
edge.
An
object
may
be
labeled
with
an
</del>
<del class="diff-old">IRI
</del>
</dt>
<del class="diff-old">or
a
label
that
</del>
<dd>
<ins class="diff-chg">An
object
structure
</ins>
is
<del class="diff-old">not
an
IRI
such
</del>
<ins class="diff-chg">represented
</ins>
as
<del class="diff-old">plain
text,
internationalized
text,
or
</del>
a
<del class="diff-old">strictly-typed
data
value.
A
node
may
be
a
subject
and
an
object
at
the
same
time.
</del>
<ins class="diff-chg">pair
of
curly
brackets
surrounding
zero
or
more
key-value
pairs.
</ins>
A
<del class="diff-old">property
</del>
<ins class="diff-chg">key
</ins>
is
<del class="diff-old">the
label
on
an
edge
in
</del>
a
<del class="diff-old">linked
data
graph
</del>
<a class="tref internalDFN" title="string" href="#dfn-string">
<ins class="diff-chg">string
</ins>
</a>.
A
<del class="diff-old">property
should
be
an
IRI
.
An
IRI
that
is
</del>
<ins class="diff-chg">single
colon
comes
after
each
key,
separating
the
key
from
the
value.
A
single
comma
separates
</ins>
a
<del class="diff-old">label
in
</del>
<ins class="diff-chg">value
from
</ins>
a
<del class="diff-old">linked
data
graph
should
be
dereferencable
</del>
<ins class="diff-chg">following
key.
In
contrast
</ins>
to
<del class="diff-old">a
Linked
Data
document
describing
</del>
<ins class="diff-chg">JSON,
in
JSON-LD
</ins>
the
<del class="diff-old">labeled
subject
,
property
or
</del>
<ins class="diff-chg">keys
in
an
</ins>
object
<del class="diff-old">.
Issue
1
</del>
<ins class="diff-chg">must
be
unique.
</ins></dd><dt>
<dfn title="array" id="dfn-array">
<ins class="diff-chg">array
</ins></dfn>
</dt>
<dd>
An
<del class="diff-old">illustration
</del>
<ins class="diff-chg">array
structure
is
represented
as
square
brackets
surrounding
zero
or
more
values.
Values
are
separated
by
commas.
In
JSON,
an
array
is
an
</ins><em><ins class="diff-chg">
ordered
</ins></em><ins class="diff-chg">
sequence
</ins>
of
<del class="diff-old">a
linked
data
graph
would
probably
help
here.
Issue
2
EricP
suggests
that
</del>
<ins class="diff-chg">zero
or
more
values.
While
JSON-LD
uses
</ins>
the
<del class="diff-old">definitions
of
subject
</del>
<ins class="diff-chg">same
array
representation
as
JSON,
the
collection
is
</ins><em><ins class="diff-chg">
unordered
</ins></em><ins class="diff-chg">
by
default.
While
order
is
preserved
in
regular
JSON
arrays,
it
is
not
in
regular
JSON-LD
arrays
unless
specifically
defined
(see
</ins><a class="sectionRef sec-ref" href="#sets-and-lists"><ins class="diff-chg">
section
6.11
Sets
</ins>
and
<del class="diff-old">object,
while
being
practical,
are
at
odds
with
[
RDF-CONCEPTS
</del>
<ins class="diff-chg">Lists
</ins>
</a>
<ins class="diff-new">).
</ins></dd><dt>
<del class="diff-old">]
use
in
their
roles
within
a
triple.
</del>
<dfn title="string" id="dfn-string">
<ins class="diff-chg">string
</ins></dfn>
</dt>
<del class="diff-old">Note
</del>
<dd>
<ins class="diff-chg">A
string
is
a
sequence
of
zero
or
more
Unicode
characters,
wrapped
in
double
quotes,
using
backslash
escapes
(if
necessary).
</ins></dd><dt>
<dfn title="number" id="dfn-number">
<ins class="diff-chg">number
</ins></dfn>
<del class="diff-old">JSON-LD
allows
properties
to
be
BNodes,
while
RDF
does
not.
When
used
as
just
JSON-LD,
this
</del>
</dt>
<dd>
<ins class="diff-chg">A
number
</ins>
is
<del class="diff-old">not
unreasonable;
it
only
becomes
an
issue
(and
could
raise
an
exception)
when
transformed
</del>
<ins class="diff-chg">similar
</ins>
to
<del class="diff-old">RDF.
Note
</del>
that
<del class="diff-old">the
definition
for
Linked
Data
above
is
silent
on
the
topic
of
unlabeled
nodes
.
Nevertheless,
this
specification
allows
for
the
expression
of
unlabeled
nodes
,
as
</del>
<ins class="diff-chg">used
in
</ins>
most
<del class="diff-old">graph-based
data
sets
on
the
Web
contain
a
number
of
associated
nodes
</del>
<ins class="diff-chg">programming
languages,
except
</ins>
that
<ins class="diff-new">the
octal
and
hexadecimal
formats
</ins>
are
not
<del class="diff-old">named
</del>
<ins class="diff-chg">used
</ins>
and
<del class="diff-old">thus
</del>
<ins class="diff-chg">leading
zeros
</ins>
are
not
<del class="diff-old">directly
de-referenceable.
JSON-LD
defines
a
mechanism
to
map
JSON
terms,
i.e.,
keys
</del>
<ins class="diff-chg">allowed.
</ins></dd><dt><dfn title="true" id="dfn-true"><ins class="diff-chg">
true
</ins></dfn>
and
<del class="diff-old">values,
to
IRIs.
This
does
not
mean
</del>
<dfn title="false" id="dfn-false">
<ins class="diff-chg">false
</ins></dfn></dt><dd><ins class="diff-chg">
Values
</ins>
that
<del class="diff-old">JSON-LD
requires
every
key
</del>
<ins class="diff-chg">are
used
to
express
one
of
two
possible
boolean
states.
</ins></dd><dt><dfn title="null" id="dfn-null"><ins class="diff-chg">
null
</ins></dfn></dt><dd><ins class="diff-chg">
The
</ins><a class="tref internalDFN" title="null" href="#dfn-null"><ins class="diff-chg">
null
</ins></a><ins class="diff-chg">
value,
which
is
typically
used
to
clear
</ins>
or
<ins class="diff-new">forget
data.
For
example,
A
key-value
pair
in
the
</ins><code><ins class="diff-new">
@context
</ins></code><ins class="diff-new">
where
the
</ins>
value
<del class="diff-old">to
be
</del>
<ins class="diff-chg">is
</ins><a class="tref internalDFN" title="null" href="#dfn-null"><ins class="diff-chg">
null
</ins></a><ins class="diff-chg">
explicitly
decouples
a
</ins><a class="tref internalDFN" title="term" href="#dfn-term"><ins class="diff-chg">
term
</ins></a><ins class="diff-chg">
's
association
with
</ins>
an
<a class="tref internalDFN" title="iri" href="#dfn-iri">
<abbr title="Internationalized Resource Identifier">
IRI
<del class="diff-old">,
but
rather
ensures
that
keys
and
values
can
be
mapped
to
IRIs
if
the
developer
desires
to
transform
their
data
into
Linked
Data
</del>
</abbr>
</a>.
<del class="diff-old">There
are
a
few
techniques
that
can
ensure
that
developers
will
generate
good
Linked
Data
for
</del>
<ins class="diff-chg">A
key-value
pair
in
</ins>
the
<del class="diff-old">Web.
</del>
<ins class="diff-chg">body
of
a
</ins>
JSON-LD
<del class="diff-old">formalizes
those
techniques.
We
will
be
using
</del>
<ins class="diff-chg">document
whose
value
is
</ins><a class="tref internalDFN" title="null" href="#dfn-null"><ins class="diff-chg">
null
</ins></a><ins class="diff-chg">
has
</ins>
the
<del class="diff-old">following
JSON
markup
</del>
<ins class="diff-chg">same
meaning
</ins>
as
<ins class="diff-new">if
</ins>
the
<del class="diff-old">example
for
</del>
<ins class="diff-chg">key-value
pair
was
not
defined.
If
</ins><code><ins class="diff-chg">
@value
</ins></code>,<code><ins class="diff-chg">
@list
</ins></code>,<ins class="diff-chg">
or
</ins><code><ins class="diff-chg">
@set
</ins></code><ins class="diff-chg">
is
set
to
</ins><a class="tref internalDFN" title="null" href="#dfn-null"><ins class="diff-chg">
null
</ins></a><ins class="diff-chg">
in
expanded
form,
then
</ins>
the
<del class="diff-old">rest
of
this
section:
{
  &quot;name&quot;: &quot;Manu Sporny&quot;,
  &quot;homepage&quot;: &quot;http://manu.sporny.org/&quot;,
  &quot;depiction&quot;: &quot;http://twitter.com/account/profile_image/manusporny&quot;
}
</del>
<ins class="diff-chg">entire
</ins><a class="tref internalDFN" title="json-object" href="#dfn-json-object"><ins class="diff-chg">
JSON
object
</ins></a><ins class="diff-chg">
is
ignored.
</ins></dd></dl>
</div>
<div class="normative section" id="syntax-tokens-and-keywords">
<h3>
<span class="secno">
<del class="diff-old">3.1.1
</del>
<ins class="diff-chg">3.2
</ins>
</span>
Syntax
Tokens
and
Keywords
</h3>
<p>
JSON-LD
specifies
a
number
of
syntax
tokens
and
<dfn title="keyword" id="dfn-keyword">
keywords
</dfn>
that
are
a
core
part
of
the
language:
</p>
<dl>
<dt>
<code>
@context
</code>
</dt>
<dd>
Used
to
define
the
short-hand
names
that
are
used
throughout
a
JSON-LD
document.
These
short-hand
names
are
called
<a class="tref internalDFN" title="term" href="#dfn-term">
<del class="diff-old">term
</del>
<ins class="diff-chg">terms
</ins>
</a>
<del class="diff-old">s
</del>
and
help
developers
to
express
specific
identifiers
in
a
compact
manner.
The
<code>
@context
</code>
keyword
is
described
in
detail
in
<del class="diff-old">the
</del>
<a class="sectionRef sec-ref" href="#the-context">
section
<del class="diff-old">titled
</del>
<ins class="diff-chg">5.1
</ins>
The
Context
</a>.
</dd>
<dt>
<code>
<del class="diff-old">@graph
Used
to
explicitly
label
a
linked
data
graph
.
This
keyword
is
described
in
the
section
titled
Named
Graphs
.
</del>
@id
</code>
</dt>
<dd>
Used
to
uniquely
identify
<em>
things
</em>
that
are
being
described
in
the
document.
This
keyword
is
described
in
<del class="diff-old">the
</del>
<a class="sectionRef sec-ref" href="#node-identifiers">
section
<del class="diff-old">titled
Identifying
the
Subject
</del>
<ins class="diff-chg">5.3
Node
Identifiers
</ins>
</a>.
</dd>
<dt>
<code>
@value
</code>
</dt>
<dd>
Used
to
specify
the
data
that
is
associated
with
a
particular
<a class="tref internalDFN" title="property" href="#dfn-property">
property
</a>
in
the
graph.
This
keyword
is
described
in
<del class="diff-old">the
sections
titled
</del>
<a class="sectionRef sec-ref" href="#string-internationalization">
<ins class="diff-chg">section
6.9
</ins>
String
Internationalization
</a>
and
<a class="sectionRef sec-ref" href="#typed-values">
<ins class="diff-chg">section
6.4
</ins>
Typed
Values
</a>.
</dd>
<dt>
<code>
@language
</code>
</dt>
<dd>
Used
to
specify
the
<del class="diff-old">native
</del>
<ins class="diff-chg">natural
(human)
</ins>
language
for
a
particular
value
or
the
default
language
of
a
JSON-LD
document.
This
keyword
is
described
in
<del class="diff-old">the
</del>
<a class="sectionRef sec-ref" href="#string-internationalization">
section
<del class="diff-old">titled
</del>
<ins class="diff-chg">6.9
</ins>
String
Internationalization
</a>.
</dd>
<dt>
<code>
@type
</code>
</dt>
<dd>
Used
to
set
the
data
type
of
a
<del class="diff-old">subject
</del>
<a class="tref internalDFN" title="node" href="#dfn-node">
<ins class="diff-chg">node
</ins>
</a>
or
<a class="tref internalDFN" title="typed-value" href="#dfn-typed-value">
typed
value
</a>.
This
keyword
is
described
in
<del class="diff-old">the
</del>
<a class="sectionRef sec-ref" href="#typed-values">
section
<del class="diff-old">titled
</del>
<ins class="diff-chg">6.4
</ins>
Typed
Values
</a>.
</dd>
<dt>
<code>
@container
</code>
</dt>
<dd>
Used
to
set
the
<ins class="diff-new">default
</ins>
container
<del class="diff-old">of
</del>
<ins class="diff-chg">type
for
</ins>
a
<del class="diff-old">particular
value.
</del>
<a class="tref internalDFN" title="term" href="#dfn-term">
<ins class="diff-chg">term
</ins></a>.
This
keyword
is
described
in
<del class="diff-old">the
</del>
<a class="sectionRef sec-ref" href="#sets-and-lists">
section
<del class="diff-old">titled
</del>
<ins class="diff-chg">6.11
</ins>
Sets
and
Lists
</a>.
</dd>
<dt>
<code>
@list
</code>
</dt>
<dd>
Used
to
express
an
ordered
set
of
data.
This
keyword
is
described
in
<del class="diff-old">the
</del>
<a class="sectionRef sec-ref" href="#sets-and-lists">
section
<del class="diff-old">titled
</del>
<ins class="diff-chg">6.11
</ins>
Sets
and
Lists
</a>.
</dd>
<dt>
<code>
@set
</code>
</dt>
<dd>
Used
to
express
an
unordered
set
of
<del class="diff-old">data.
</del>
<ins class="diff-chg">data
and
to
ensure
that
values
are
always
represented
as
arrays.
</ins>
This
keyword
is
described
in
<del class="diff-old">the
</del>
<a class="sectionRef sec-ref" href="#sets-and-lists">
section
<del class="diff-old">titled
</del>
<ins class="diff-chg">6.11
</ins>
Sets
and
Lists
</a>.
</dd>
<dt>
<code>
<ins class="diff-new">@reverse
</ins></code></dt><dd><ins class="diff-new">
Used
to
express
reverse
properties.
This
keyword
is
described
in
</ins><a class="sectionRef sec-ref" href="#reverse-properties"><ins class="diff-new">
section
6.12
Reverse
Properties
</ins></a>.</dd><dt><code><ins class="diff-new">
@index
</ins></code></dt><dd><ins class="diff-new">
Used
to
specify
that
a
container
is
used
to
index
information
and
that
processing
should
continue
deeper
into
a
JSON
data
structure.
This
keyword
is
described
in
</ins><a class="sectionRef sec-ref" href="#data-indexing"><ins class="diff-new">
section
6.16
Data
Indexing
</ins></a>.</dd><dt><code><ins class="diff-new">
@base
</ins></code></dt><dd><ins class="diff-new">
Used
to
set
the
base
</ins><abbr title="Internationalized Resource Identifier"><ins class="diff-new">
IRI
</ins></abbr><ins class="diff-new">
against
which
</ins><a class="tref internalDFN" title="relative-iri" href="#dfn-relative-iri"><ins class="diff-new">
relative
IRIs
</ins></a><ins class="diff-new">
are
resolved.
This
keyword
is
described
in
</ins><a class="sectionRef sec-ref" href="#base-iri"><ins class="diff-new">
section
6.1
Base
IRI
</ins></a>.</dd><dt><code><ins class="diff-new">
@vocab
</ins></code></dt><dd><ins class="diff-new">
Used
to
expand
properties
and
values
in
</ins><code><ins class="diff-new">
@type
</ins></code><ins class="diff-new">
with
a
common
prefix
</ins><a class="tref internalDFN" title="iri" href="#dfn-iri"><abbr title="Internationalized Resource Identifier"><ins class="diff-new">
IRI
</ins></abbr></a>.<ins class="diff-new">
This
keyword
is
described
in
</ins><a class="sectionRef sec-ref" href="#default-vocabulary"><ins class="diff-new">
section
6.2
Default
Vocabulary
</ins></a>.</dd><dt><code><ins class="diff-new">
@graph
</ins></code></dt><dd><ins class="diff-new">
Used
to
explicitly
label
a
</ins><a class="tref internalDFN" title="json-ld-graph" href="#dfn-json-ld-graph"><ins class="diff-new">
JSON-LD
graph
</ins></a>.<ins class="diff-new">
This
keyword
is
described
in
</ins><a class="sectionRef sec-ref" href="#named-graphs"><ins class="diff-new">
section
6.13
Named
Graphs
</ins></a>.</dd><dt>
<code>:
</code>
</dt>
<dd>
The
separator
for
JSON
keys
and
values
that
use
<a class="tref internalDFN" title="compact-iri" href="#dfn-compact-iri">
compact
IRIs
</a>.
</dd>
</dl>
<p>
<del class="diff-old">For
the
avoidance
of
doubt,
all
</del>
<ins class="diff-chg">All
</ins>
keys,
<a class="tref internalDFN" title="keyword" href="#dfn-keyword">
keywords
</a>,
and
values
in
JSON-LD
are
case-sensitive.
</p>
</div>
</div>
<div class="normative section" id="conformance">
<h2>
<span class="secno">
<del class="diff-old">3.1.2
</del>
<ins class="diff-chg">4.
</ins>
</span>
<del class="diff-old">The
Context
</del>
<ins class="diff-chg">Conformance
</ins></h2>
<p>
<del class="diff-old">In
JSON-LD,
a
context
</del>
<ins class="diff-chg">This
specification
describes
the
conformance
criteria
for
JSON-LD
documents.
This
criteria
</ins>
is
<del class="diff-old">used
</del>
<ins class="diff-chg">relevant
</ins>
to
<del class="diff-old">map
term
</del>
<ins class="diff-chg">authors
and
authoring
tool
implementers.
As
well
as
sections
marked
as
non-normative,
all
authoring
guidelines,
diagrams,
examples,
and
notes
in
this
specification
are
non-normative.
Everything
else
in
this
specification
is
normative.
</ins></p><p><ins class="diff-chg">
A
</ins><a class="tref internalDFN" title="json-ld-document" href="#dfn-json-ld-document"><ins class="diff-chg">
JSON-LD
document
</ins>
</a>
<del class="diff-old">s,
i.e.,
properties
</del>
<ins class="diff-chg">complies
</ins>
with
<del class="diff-old">associated
values
</del>
<ins class="diff-chg">this
specification
if
it
follows
the
normative
statements
</ins>
in
<del class="diff-old">an
JSON
document,
to
IRI
s.
A
term
is
a
short
word
that
expands
to
an
</del>
<ins class="diff-chg">appendix
</ins><a href="#json-ld-grammar" class="sec-ref">
<del class="diff-old">IRI
</del>
<span class="secno">
<ins class="diff-chg">B.
</ins></span><span class="sec-title"><ins class="diff-chg">
JSON-LD
Grammar
</ins></span>
</a>.
<del class="diff-old">Term
s
may
</del>
<ins class="diff-chg">JSON
documents
can
</ins>
be
<del class="diff-old">defined
</del>
<ins class="diff-chg">interpreted
</ins>
as
<del class="diff-old">any
valid
</del>
<ins class="diff-chg">JSON-LD
by
following
the
normative
statements
in
</ins><a class="sectionRef sec-ref" href="#interpreting-json-as-json-ld"><ins class="diff-chg">
section
6.8
Interpreting
</ins>
JSON
<del class="diff-old">string
other
than
a
</del>
<ins class="diff-chg">as
</ins>
JSON-LD
<del class="diff-old">keyword
</del>
</a>.
<del class="diff-old">To
avoid
forward-compatibility
issues,
term
</del>
<ins class="diff-chg">For
convenience,
normative
statements
for
documents
are
often
phrased
as
statements
on
the
properties
of
the
document.
</ins></p><p><ins class="diff-chg">
The
key
words
</ins><em class="rfc2119" title="MUST"><ins class="diff-chg">
MUST
</ins></em>,<em class="rfc2119" title="MUST NOT"><ins class="diff-chg">
MUST
NOT
</ins></em>,<em class="rfc2119" title="REQUIRED"><ins class="diff-chg">
REQUIRED
</ins></em>,<em class="rfc2119" title="SHALL"><ins class="diff-chg">
SHALL
</ins></em>,<em class="rfc2119" title="SHALL NOT"><ins class="diff-chg">
SHALL
NOT
</ins></em>,<em class="rfc2119" title="SHOULD"><ins class="diff-chg">
SHOULD
</ins></em>,<em class="rfc2119" title="SHOULD NOT"><ins class="diff-chg">
SHOULD
NOT
</ins></em>,<em class="rfc2119" title="RECOMMENDED"><ins class="diff-chg">
RECOMMENDED
</ins></em>,<em class="rfc2119" title="NOT RECOMMENDED"><ins class="diff-chg">
NOT
RECOMMENDED
</ins></em>,<em class="rfc2119" title="MAY"><ins class="diff-chg">
MAY
</ins></em>,<ins class="diff-chg">
and
</ins><em class="rfc2119" title="OPTIONAL"><ins class="diff-chg">
OPTIONAL
</ins></em><ins class="diff-chg">
in
this
specification
have
the
meaning
defined
in
[
</ins><cite><a class="bibref" href="#bib-RFC2119"><ins class="diff-chg">
RFC2119
</ins>
</a>
<del class="diff-old">s
starting
with
an
@
character
should
not
</del>
</cite>
<ins class="diff-chg">].
</ins></p></div><div class="informative section" id="basic-concepts"><h2><span class="secno"><ins class="diff-chg">
5.
</ins></span><ins class="diff-chg">
Basic
Concepts
</ins></h2><p><em><ins class="diff-chg">
This
section
is
non-normative.
</ins>
</em>
<del class="diff-old">be
used
as
they
might
be
used
as
keywords
</del>
</p>
<p>
<ins class="diff-chg">JSON
[
</ins><cite><a class="bibref" href="#bib-RFC4627"><ins class="diff-chg">
RFC4627
</ins>
</a>
<del class="diff-old">in
future
versions
of
JSON-LD.
</del>
</cite>
<ins class="diff-chg">]
is
a
lightweight,
language-independent
data-interchange
format.
It
is
easy
to
parse
and
easy
to
generate.
However,
it
is
difficult
to
integrate
JSON
from
different
sources
as
the
data
has
just
local
meaning.
</ins>
Furthermore,
<ins class="diff-new">JSON
has
no
built-in
support
for
hyperlinks
-
a
fundamental
building
block
on
</ins>
the
<del class="diff-old">use
</del>
<ins class="diff-chg">Web.
Let's
look
at
an
example
that
we
will
be
using
for
the
rest
</ins>
of
<del class="diff-old">empty
terms
(
</del>
<ins class="diff-chg">this
section:
</ins></p>  <div class="example"><div class="example-title"><span>Example 1</span>: Sample JSON document</div><pre class="example">{<ins class="diff-chg">
  &quot;name&quot;: &quot;Manu Sporny&quot;,
  &quot;homepage&quot;: &quot;http://manu.sporny.org/&quot;,
  &quot;image&quot;: &quot;http://manu.sporny.org/images/manu.png&quot;
}
</ins></pre></div><p><ins class="diff-chg">
It's
obvious
to
humans
that
the
data
is
about
a
person
whose
name
is
&quot;Manu
Sporny&quot;
and
that
the
</ins>
<code>
<del class="diff-old">&quot;&quot;
</del>
<ins class="diff-chg">homepage
</ins>
</code>
<del class="diff-old">)
</del>
<ins class="diff-chg">property
contains
the
URL
of
that
person's
homepage.
A
machine
doesn't
have
such
an
intuitive
understanding
and
sometimes,
even
for
humans,
it
</ins>
is
<del class="diff-old">discouraged
as
not
all
programming
languages
are
able
</del>
<ins class="diff-chg">difficult
</ins>
to
<del class="diff-old">handle
empty
property
names.
</del>
<ins class="diff-chg">resolve
ambiguities
in
such
representations.
This
problem
can
be
solved
by
using
unambiguous
identifiers
to
denote
the
different
concepts
instead
of
tokens
such
as
&quot;name&quot;,
&quot;homepage&quot;,
etc.
</ins>
</p>
<p>
<del class="diff-old">The
</del>
<a class="tref internalDFN" title="linked-data" href="#dfn-linked-data">
<ins class="diff-chg">Linked
Data
</ins></a>,<ins class="diff-chg">
and
the
</ins>
Web
<ins class="diff-new">in
general,
</ins>
uses
<a class="tref internalDFN" title="iri" href="#dfn-iri">
IRIs
</a>
<ins class="diff-new">(Internationalized
Resource
Identifiers
as
described
in
[
</ins><cite><a class="bibref" href="#bib-RFC3987"><ins class="diff-new">
RFC3987
</ins></a></cite><ins class="diff-new">
])
</ins>
for
unambiguous
identification.
The
idea
is
<del class="diff-old">that
these
term
</del>
<ins class="diff-chg">to
assign
</ins><a class="tref internalDFN" title="iri" href="#dfn-iri"><ins class="diff-chg">
IRIs
</ins>
</a>
<del class="diff-old">s
mean
</del>
<ins class="diff-chg">to
</ins>
something
that
may
be
of
use
to
other
developers
and
that
it
is
useful
to
give
them
an
unambiguous
identifier.
That
is,
it
is
useful
for
<a class="tref internalDFN" title="term" href="#dfn-term">
<del class="diff-old">term
</del>
<ins class="diff-chg">terms
</ins>
</a>
<del class="diff-old">s
</del>
to
expand
to
<a class="tref internalDFN" title="iri" href="#dfn-iri">
IRIs
</a>
so
that
developers
don't
accidentally
step
on
each
other's
<del class="diff-old">vocabulary
terms
and
other
resources.
</del>
<ins class="diff-chg">terms.
</ins>
Furthermore,
<del class="diff-old">developers,
</del>
<ins class="diff-chg">developers
</ins>
and
<del class="diff-old">machines,
</del>
<ins class="diff-chg">machines
</ins>
are
able
to
use
this
<a class="tref internalDFN" title="iri" href="#dfn-iri">
<abbr title="Internationalized Resource Identifier">
IRI
</abbr>
</a>
(by
<del class="diff-old">plugging
it
directly
into
</del>
<ins class="diff-chg">using
</ins>
a
web
browser,
for
instance)
to
go
to
the
term
and
get
a
definition
of
what
the
term
means.
<del class="diff-old">This
mechanism
is
analogous
to
</del>
</p>
<p>
<ins class="diff-chg">Leveraging
</ins>
the
<del class="diff-old">way
we
can
use
WordNet
today
to
see
</del>
<ins class="diff-chg">well-known
</ins><a href="http://schema.org/"><ins class="diff-chg">
schema.org
vocabulary
</ins></a>,
the
<del class="diff-old">definition
of
words
in
</del>
<ins class="diff-chg">example
above
could
be
unambiguously
expressed
as
follows:
</ins></p>  <div class="example"><div class="example-title"><span>Example 2</span>: Sample JSON-LD document using full IRIs instead of terms</div><pre class="example">{<ins class="diff-chg">
  &quot;<span class="diff">http://schema.org/name</span>&quot;: &quot;Manu Sporny&quot;,
  &quot;<span class="diff">http://schema.org/url</span>&quot;: <span class="diff">{ &quot;@id&quot;: </span>&quot;http://manu.sporny.org/&quot; <span class="diff">}</span>,
  &quot;<span class="diff">http://schema.org/image</span>&quot;: <span class="diff">{ &quot;@id&quot;: </span>&quot;http://manu.sporny.org/images/manu.png&quot; <span class="diff">}</span>
}
</ins></pre></div><p><ins class="diff-chg">
In
</ins>
the
<del class="diff-old">English
language.
Developers
</del>
<ins class="diff-chg">example
above,
every
property
is
unambiguously
identified
by
an
</ins><a class="tref internalDFN" title="iri" href="#dfn-iri"><abbr title="Internationalized Resource Identifier"><ins class="diff-chg">
IRI
</ins></abbr></a>
and
<del class="diff-old">machines
need
the
same
sort
of
definition
of
terms.
</del>
<ins class="diff-chg">all
values
representing
</ins>
<a class="tref internalDFN" title="iri" href="#dfn-iri">
IRIs
</a>
<del class="diff-old">provide
a
way
to
ensure
that
these
terms
</del>
are
<del class="diff-old">unambiguous.
For
example,
</del>
<ins class="diff-chg">explicitly
marked
as
such
by
</ins>
the
<del class="diff-old">term
</del>
<code>
<del class="diff-old">name
</del>
<ins class="diff-chg">@id
</ins>
</code>
<del class="diff-old">may
map
directly
to
the
IRI
http://xmlns.com/foaf/0.1/name
.
This
allows
</del>
<a class="tref internalDFN" title="keyword" href="#dfn-keyword">
<ins class="diff-chg">keyword
</ins></a>.<ins class="diff-chg">
While
this
is
a
valid
</ins>
JSON-LD
<del class="diff-old">documents
</del>
<ins class="diff-chg">document
that
is
very
specific
about
its
data,
the
document
is
also
overly
verbose
and
difficult
</ins>
to
<del class="diff-old">be
constructed
using
</del>
<ins class="diff-chg">work
with
for
human
developers.
To
address
this
issue,
JSON-LD
introduces
</ins>
the
<del class="diff-old">common
JSON
practice
</del>
<ins class="diff-chg">notion
</ins>
of
<del class="diff-old">simple
name/value
pairs
while
ensuring
that
</del>
<ins class="diff-chg">a
</ins><a class="tref internalDFN" title="context" href="#dfn-context"><ins class="diff-chg">
context
</ins></a><ins class="diff-chg">
as
described
in
</ins>
the
<del class="diff-old">data
</del>
<ins class="diff-chg">next
section.
</ins></p><div class="informative section" id="the-context"><h3><span class="secno"><ins class="diff-chg">
5.1
</ins></span><ins class="diff-chg">
The
Context
</ins></h3><p><em><ins class="diff-chg">
This
section
</ins>
is
<del class="diff-old">useful
outside
of
</del>
<ins class="diff-chg">non-normative.
</ins></em></p><p><ins class="diff-chg">
Simply
speaking,
a
</ins><dfn title="context" id="dfn-context"><ins class="diff-chg">
context
</ins></dfn><ins class="diff-chg">
is
used
to
map
</ins><a class="tref internalDFN" title="term" href="#dfn-term"><ins class="diff-chg">
terms
</ins></a><ins class="diff-chg">
to
</ins><a class="tref internalDFN" title="iri" href="#dfn-iri"><ins class="diff-chg">
IRIs
</ins></a>.<a class="tref internalDFN" title="term" href="#dfn-term"><ins class="diff-chg">
Terms
</ins></a><ins class="diff-chg">
are
case
sensitive
and
any
valid
</ins><a class="tref internalDFN" title="string" href="#dfn-string"><ins class="diff-chg">
string
</ins></a><ins class="diff-chg">
that
is
not
a
reserved
JSON-LD
</ins><a class="tref internalDFN" title="keyword" href="#dfn-keyword"><ins class="diff-chg">
keyword
</ins></a><ins class="diff-chg">
can
be
used
as
a
</ins><a class="tref internalDFN" title="term" href="#dfn-term"><ins class="diff-chg">
term
</ins></a>.</p><p><ins class="diff-chg">
For
</ins>
the
<del class="diff-old">page,
API
or
database
</del>
<ins class="diff-chg">sample
document
</ins>
in
<del class="diff-old">which
it
resides.
The
</del>
<ins class="diff-chg">the
previous
section,
a
</ins><a class="tref internalDFN" title="context" href="#dfn-context"><ins class="diff-chg">
context
</ins></a><ins class="diff-chg">
would
look
something
like
this:
</ins></p>    <div class="example"><div class="example-title"><span>Example 3</span>: Context for the sample document in the previous section</div><pre class="example">{  <span class="diff">&quot;@context&quot;:<ins class="diff-chg">
  {
    &quot;name&quot;: &quot;http://schema.org/name&quot;,
    &quot;image&quot;: {
      &quot;@id&quot;: &quot;http://schema.org/image&quot;,
      &quot;@type&quot;: &quot;@id&quot;
    },
    &quot;homepage&quot;: {
      &quot;@id&quot;: &quot;http://schema.org/url&quot;,
      &quot;@type&quot;: &quot;@id&quot;
    }
  }</span>
}
</ins></pre></div><p><ins class="diff-chg">
As
the
</ins><a class="tref internalDFN" title="context" href="#dfn-context"><ins class="diff-chg">
context
</ins></a><ins class="diff-chg">
above
shows,
the
</ins>
value
of
a
<dfn title="term-definition" id="dfn-term-definition">
term
<del class="diff-old">mapping
must
</del>
<ins class="diff-chg">definition
</ins></dfn><ins class="diff-chg">
can
either
</ins>
be
<del class="diff-old">either;
1)
</del>
a
simple
<del class="diff-old">string
with
</del>
<ins class="diff-chg">string,
mapping
</ins>
the
<del class="diff-old">lexical
form
of
</del>
<a class="tref internalDFN" title="term" href="#dfn-term">
<ins class="diff-chg">term
</ins></a><ins class="diff-chg">
to
</ins>
an
<del class="diff-old">absolute
IRI
</del>
<a class="tref internalDFN" title="iri" href="#dfn-iri">
<del class="diff-old">or
2)
compact
</del>
<abbr title="Internationalized Resource Identifier">
IRI
</abbr>
</a>,
or
<del class="diff-old">3)
an
</del>
<ins class="diff-chg">a
</ins><a class="tref internalDFN" title="json-object" href="#dfn-json-object"><ins class="diff-chg">
JSON
object
</ins></a>.</p><p><ins class="diff-chg">
When
a
</ins><a class="tref internalDFN" title="json-object" href="#dfn-json-object">
JSON
object
</a>
<del class="diff-old">containing
</del>
<ins class="diff-chg">is
associated
with
a
term,
it
is
called
</ins>
an
<dfn title="expanded-term-definition" id="dfn-expanded-term-definition">
<ins class="diff-new">expanded
term
definition
</ins></dfn>.<ins class="diff-new">
The
example
above
specifies
that
the
values
of
</ins>
<code>
<del class="diff-old">@id
,
@type
,
@language
,
or
</del>
<ins class="diff-chg">image
</ins></code><ins class="diff-chg">
and
</ins>
<code>
<del class="diff-old">@container
</del>
<ins class="diff-chg">homepage
</ins>
</code>
<del class="diff-old">keyword
(all
other
keywords
</del>
<ins class="diff-chg">terms
</ins>
are
<del class="diff-old">ignored
by
a
JSON-LD
processor).
These
Linked
Data
term
</del>
<a class="tref internalDFN" title="iri" href="#dfn-iri">
<ins class="diff-chg">IRIs
</ins></a>.<ins class="diff-chg">
They
also
allow
terms
to
be
used
for
</ins><a href="#data-indexing"><ins class="diff-chg">
index
maps
</ins>
</a>
<del class="diff-old">s
</del>
<ins class="diff-chg">and
to
specify
whether
</ins><a class="tref internalDFN" title="array" href="#dfn-array"><ins class="diff-chg">
array
</ins></a><ins class="diff-chg">
values
</ins>
are
<del class="diff-old">typically
collected
in
a
context
document
that
would
look
something
like
this:
{
  &quot;@context&quot;:
  {
    &quot;name&quot;: &quot;http://xmlns.com/foaf/0.1/name&quot;,
    &quot;depiction&quot;:
    {
      &quot;@id&quot;: &quot;http://xmlns.com/foaf/0.1/depiction&quot;,
      &quot;@type&quot;: &quot;@id&quot;
    },
    &quot;homepage&quot;:
    {
      &quot;@id&quot;: &quot;http://xmlns.com/foaf/0.1/homepage&quot;,
      &quot;@type&quot;: &quot;@id&quot;
    },
  }
}
</del>
<ins class="diff-chg">to
be
interpreted
as
</ins><a href="#sets-and-lists"><ins class="diff-chg">
sets
or
lists
</ins></a>.<a class="tref internalDFN" title="expanded-term-definition" href="#dfn-expanded-term-definition"><ins class="diff-chg">
Expanded
term
definitions
</ins></a><ins class="diff-chg">
may
be
defined
using
</ins><a class="tref internalDFN" title="absolute-iri" href="#dfn-absolute-iri"><ins class="diff-chg">
absolute
</ins></a><ins class="diff-chg">
or
</ins><a class="tref internalDFN" title="compact-iri" href="#dfn-compact-iri"><ins class="diff-chg">
compact
IRIs
</ins></a><ins class="diff-chg">
as
keys,
which
is
mainly
used
to
associate
type
or
language
information
with
an
</ins><a class="tref internalDFN" title="absolute-iri" href="#dfn-absolute-iri"><ins class="diff-chg">
absolute
</ins></a><ins class="diff-chg">
or
</ins><a class="tref internalDFN" title="compact-iri" href="#dfn-compact-iri"><ins class="diff-chg">
compact
</ins><abbr title="Internationalized Resource Identifier"><ins class="diff-chg">
IRI
</ins></abbr>
</a>.
</p>
<p>
<a class="tref internalDFN" title="context" href="#dfn-context">
<ins class="diff-new">Contexts
</ins></a><ins class="diff-new">
can
either
be
directly
embedded
into
the
document
or
be
referenced.
</ins>
Assuming
<del class="diff-old">that
this
</del>
<ins class="diff-chg">the
</ins>
context
document
<ins class="diff-new">in
the
previous
example
</ins>
can
be
retrieved
at
<code>
http://json-ld.org/contexts/person.jsonld
</code>,
it
can
be
referenced
<del class="diff-old">from
a
JSON-LD
document
</del>
by
adding
a
single
<del class="diff-old">line.
The
JSON
markup
</del>
<ins class="diff-chg">line
and
allows
a
JSON-LD
document
to
be
expressed
much
more
concisely
as
</ins>
shown
in
the
<del class="diff-old">previous
section
could
be
changed
as
follows:
</del>
<ins class="diff-chg">example
below:
</ins>
</p>
<del class="diff-old">{
</del>
    <div class="example"><div class="example-title"><span>Example 4</span>: Referencing a JSON-LD context</div><pre class="example">{
  <span class="diff">&quot;@context&quot;: &quot;http://json-ld.org/contexts/person.jsonld&quot;,</span>
  &quot;name&quot;: &quot;Manu Sporny&quot;,
  &quot;homepage&quot;: &quot;http://manu.sporny.org/&quot;,
<del class="diff-old">  &quot;depiction&quot;: &quot;http://twitter.com/account/profile_image/manusporny&quot;
</del>
<ins class="diff-chg">  &quot;image&quot;: &quot;http://manu.sporny.org/images/manu.png&quot;
</ins>
}
</pre>
</div>
<p>
The
<del class="diff-old">additions
above
transform
the
previous
JSON
document
into
a
JSON
document
with
added
semantics
because
the
@context
</del>
<ins class="diff-chg">referenced
context
not
only
</ins>
specifies
how
the
<del class="diff-old">name
,
homepage
,
and
depiction
</del>
terms
map
to
<a class="tref internalDFN" title="iri" href="#dfn-iri">
IRIs
<del class="diff-old">.
Mapping
those
keys
to
IRIs
gives
</del>
</a>
<ins class="diff-chg">in
</ins>
the
<del class="diff-old">data
global
context.
If
two
developers
use
</del>
<ins class="diff-chg">Schema.org
vocabulary
but
also
specifies
that
</ins>
the
<del class="diff-old">same
</del>
<ins class="diff-chg">values
of
the
</ins><code><ins class="diff-chg">
homepage
</ins></code><ins class="diff-chg">
and
</ins><code><ins class="diff-chg">
image
</ins></code><ins class="diff-chg">
property
can
be
interpreted
as
an
</ins><a class="tref internalDFN" title="iri" href="#dfn-iri">
<abbr title="Internationalized Resource Identifier">
IRI
</abbr>
<del class="diff-old">to
describe
a
property,
they
are
</del>
</a>
<ins class="diff-chg">(
</ins><code><ins class="diff-chg">
&quot;@type&quot;:
&quot;@id&quot;
</ins></code>,<ins class="diff-chg">
see
</ins><a class="sectionRef sec-ref" href="#iris"><ins class="diff-chg">
section
5.2
IRIs
</ins></a><ins class="diff-chg">
for
</ins>
more
<del class="diff-old">than
likely
expressing
the
same
concept.
</del>
<ins class="diff-chg">details).
</ins>
This
<ins class="diff-new">information
</ins>
allows
<del class="diff-old">both
</del>
developers
to
re-use
each
<del class="diff-old">others'
</del>
<ins class="diff-chg">other's
</ins>
data
without
having
to
agree
to
how
their
data
will
interoperate
on
a
site-by-site
basis.
<del class="diff-old">Contexts
</del>
<ins class="diff-chg">External
JSON-LD
context
documents
</ins>
may
<del class="diff-old">also
</del>
contain
<del class="diff-old">type
</del>
<ins class="diff-chg">extra
</ins>
information
<del class="diff-old">for
certain
</del>
<ins class="diff-chg">located
outside
of
the
</ins><code><ins class="diff-chg">
@context
</ins></code><ins class="diff-chg">
key,
such
as
documentation
about
the
</ins>
<a class="tref internalDFN" title="term" href="#dfn-term">
<del class="diff-old">term
</del>
<ins class="diff-chg">terms
</ins>
</a>
<del class="diff-old">s
as
well
as
other
processing
instructions
for
</del>
<ins class="diff-chg">declared
in
the
document.
Information
contained
outside
of
the
</ins><code><ins class="diff-chg">
@context
</ins></code><ins class="diff-chg">
value
is
ignored
when
</ins>
the
<ins class="diff-new">document
is
used
as
an
external
</ins>
JSON-LD
<del class="diff-old">processor.
</del>
<ins class="diff-chg">context
document.
</ins>
</p>
<p>
<del class="diff-old">Contexts
may
be
specified
in-line.
This
ensures
that
JSON-LD
</del>
<ins class="diff-chg">JSON
</ins>
documents
can
be
<del class="diff-old">processed
when
a
</del>
<ins class="diff-chg">transformed
to
</ins>
JSON-LD
<del class="diff-old">processor
does
not
have
access
</del>
<ins class="diff-chg">without
having
</ins>
to
<del class="diff-old">the
Web.
{
  &quot;@context&quot;:
  {
    &quot;name&quot;: &quot;http://xmlns.com/foaf/0.1/name&quot;,
    &quot;depiction&quot;:
    {
      &quot;@id&quot;: &quot;http://xmlns.com/foaf/0.1/depiction&quot;,
      &quot;@type&quot;: &quot;@id&quot;
    },
    &quot;homepage&quot;:
    {
      &quot;@id&quot;: &quot;http://xmlns.com/foaf/0.1/homepage&quot;,
      &quot;@type&quot;: &quot;@id&quot;
    },
  },
  &quot;name&quot;: &quot;Manu Sporny&quot;,
  &quot;homepage&quot;: &quot;http://manu.sporny.org/&quot;,
  &quot;depiction&quot;: &quot;http://twitter.com/account/profile_image/manusporny&quot;
}
Contexts
may
</del>
be
<del class="diff-old">used
at
any
time
</del>
<ins class="diff-chg">modified
by
referencing
</ins>
a
<del class="diff-old">subject
definition
is
defined.
A
subject
definition
may
specify
multiple
contexts,
using
an
array
,
which
is
processed
in
order.
This
is
useful
when
an
author
would
like
to
use
an
existing
context
and
add
application-specific
terms
to
the
existing
context.
Duplicate
</del>
<a class="tref internalDFN" title="context" href="#dfn-context">
context
<del class="diff-old">term
</del>
</a>
<del class="diff-old">s
must
be
overridden
using
a
last-defined-overrides
mechanism.
Note
If
a
term
is
re-defined
within
a
context,
all
previous
rules
associated
with
the
previous
definition
are
removed.
A
term
defined
</del>
<ins class="diff-chg">via
an
HTTP
Link
Header
as
described
</ins>
in
<del class="diff-old">a
previous
context
must
be
removed,
if
it
</del>
<a class="sectionRef sec-ref" href="#interpreting-json-as-json-ld">
<ins class="diff-chg">section
6.8
Interpreting
JSON
as
JSON-LD
</ins></a>.<ins class="diff-chg">
It
</ins>
is
<del class="diff-old">re-defined
</del>
<ins class="diff-chg">also
possible
</ins>
to
<del class="diff-old">null
.
The
set
of
contexts
defined
within
</del>
<ins class="diff-chg">apply
</ins>
a
<del class="diff-old">specific
subject
definition
are
referred
to
as
local
context
s.
Setting
the
context
to
null
effectively
sets
the
local
context
to
the
initial
</del>
<ins class="diff-chg">custom
</ins>
context
<del class="diff-old">(further
explained
in
</del>
<ins class="diff-chg">using
</ins>
the
JSON-LD
<del class="diff-old">API,
Appendix
A,
Initial
Context
</del>
<ins class="diff-chg">API
</ins>
[
<cite>
<a class="bibref" href="#bib-JSON-LD-API">
JSON-LD-API
</a>
</cite>
<del class="diff-old">]
).
The
active
context
refers
to
the
accumulation
of
local
context
s
that
are
in
scope
at
a
specific
point
within
the
document.
The
following
example
specifies
an
external
context
and
then
layers
a
local
context
on
top
of
the
external
context:
</del>
<ins class="diff-chg">].
</ins>
</p>
<del class="diff-old">{
  &quot;@context&quot;: [
    &quot;http://json-ld.org/contexts/person.jsonld&quot;,
    {
      &quot;pic&quot;: &quot;http://xmlns.com/foaf/0.1/depiction&quot;
    }
  ],
  &quot;name&quot;: &quot;Manu Sporny&quot;,
  &quot;homepage&quot;: &quot;http://manu.sporny.org/&quot;,

}
Note
To
ensure
the
best
possible
performance,
it
is
a
best
practice
to
put
the
context
definition
at
the
top
of
the
</del>
<p>
<ins class="diff-chg">In
</ins><a class="tref internalDFN" title="json-ld-document" href="#dfn-json-ld-document">
JSON-LD
<del class="diff-old">document.
If
it
isn't
listed
first,
processors
have
to
save
each
key-value
pair
until
the
</del>
<ins class="diff-chg">documents
</ins></a>
<a class="tref internalDFN" title="context" href="#dfn-context">
<del class="diff-old">context
</del>
<ins class="diff-chg">contexts
</ins>
</a>
<del class="diff-old">is
processed.
</del>
<ins class="diff-chg">may
also
be
specified
in-line.
</ins>
This
<del class="diff-old">creates
a
memory
and
complexity
burden
for
certain
types
of
low-memory
footprint
JSON-LD
processors.
Note
The
null
value
is
</del>
<ins class="diff-chg">has
the
advantage
that
documents
can
be
</ins>
processed
<del class="diff-old">in
a
special
way
in
JSON-LD.
Unless
otherwise
specified,
a
JSON-LD
processor
must
act
as
if
a
key-value
pair
</del>
<ins class="diff-chg">even
</ins>
in
the
<del class="diff-old">body
</del>
<ins class="diff-chg">absence
</ins>
of
a
<del class="diff-old">JSON-LD
document
was
never
declared
when
the
value
equals
null
.
If
@value
,
@list
,
or
@set
is
set
to
null
in
expanded
form,
then
the
entire
JSON
object
is
ignored.
If
@context
is
set
</del>
<ins class="diff-chg">connection
</ins>
to
<del class="diff-old">null
,
the
active
context
is
reset
and
when
used
within
a
context
,
it
removes
any
definition
associated
with
</del>
the
<del class="diff-old">key,
unless
otherwise
specified.
</del>
<ins class="diff-chg">Web.
</ins>
</p>
    <div class="example"><div class="example-title"><span>Example 5</span>: In-line context definition</div><pre class="example">{
  <span class="diff">&quot;@context&quot;:
<ins class="diff-new">  {
    &quot;name&quot;: &quot;http://schema.org/name&quot;,
    &quot;image&quot;: {
      &quot;@id&quot;: &quot;http://schema.org/image&quot;,
      &quot;@type&quot;: &quot;@id&quot;
    },
    &quot;homepage&quot;: {
      &quot;@id&quot;: &quot;http://schema.org/url&quot;,
      &quot;@type&quot;: &quot;@id&quot;
    }
  },</span>
  &quot;name&quot;: &quot;Manu Sporny&quot;,
  &quot;homepage&quot;: &quot;http://manu.sporny.org/&quot;,
  &quot;image&quot;: &quot;http://manu.sporny.org/images/manu.png&quot;
}
</ins></pre>
</div>
</div>
<div class="informative section" id="iris">
<h3>
<span class="secno">
<del class="diff-old">3.1.3
</del>
<ins class="diff-chg">5.2
</ins>
</span>
<del class="diff-old">From
JSON
to
JSON-LD
If
a
set
of
term
s
such
as,
name
,
homepage
,
and
depiction
,
are
defined
in
a
context
,
and
that
context
is
used
to
resolve
the
names
in
JSON
objects
,
machines
are
able
to
automatically
expand
the
terms
to
something
meaningful
and
unambiguous,
like
this:
{
  &quot;&quot;: &quot;Manu Sporny&quot;,
  &quot;&quot;: &quot;http://manu.sporny.org&quot;
  &quot;&quot;: &quot;http://twitter.com/account/profile_image/manusporny&quot;
}
</del>
<ins class="diff-chg">IRIs
</ins></h3>
<p>
<del class="diff-old">Doing
this
allows
JSON
to
be
unambiguously
machine-readable
without
requiring
developers
to
drastically
change
their
workflow.
</del>
<del class="diff-old">Note
The
example
above
does
not
use
the
@id
keyword
to
set
the
subject
of
the
node
being
described
above.
</del>
<em>
This
<del class="diff-old">type
of
node
is
called
an
unlabeled
node
.
It
is
advised
that
all
nodes
described
in
JSON-LD
are
given
unique
identifiers
via
the
@id
keyword
unless
the
data
</del>
<ins class="diff-chg">section
</ins>
is
<del class="diff-old">not
intended
to
be
linked
to
from
other
data
sets.
</del>
<ins class="diff-chg">non-normative.
</ins></em>
<del class="diff-old">A
JSON
object
used
to
define
property
values
is
called
a
subject
definition
.
Subject
definitions
do
not
require
an
@id
.
Subject
definitions
that
do
not
contain
an
@id
are
known
as
an
unlabeled
nodes
.
</del>
</p>
<del class="diff-old">3.2
IRIs
</del>
<p>
<a class="tref internalDFN" title="iri" href="#dfn-iri">
<ins class="diff-new">IRIs
</ins></a><ins class="diff-new">
(Internationalized
Resource
Identifiers
[
</ins><cite>
<del class="diff-old">IRI
</del>
<a class="bibref" href="#bib-RFC3987">
<ins class="diff-chg">RFC3987
</ins>
</a>
<del class="diff-old">s
</del>
</cite>
<ins class="diff-chg">])
</ins>
are
fundamental
to
<a class="tref internalDFN" title="linked-data" href="#dfn-linked-data">
Linked
Data
</a>
as
that
is
how
most
<del class="diff-old">subject
</del>
<a class="tref internalDFN" title="node" href="#dfn-node">
<ins class="diff-chg">nodes
</ins>
</a>
<del class="diff-old">s,
all
</del>
<ins class="diff-chg">and
</ins>
<a class="tref internalDFN" title="property" href="#dfn-property">
properties
</a>
<del class="diff-old">and
many
object
s
</del>
are
identified.
<del class="diff-old">IRI
s
can
be
expressed
in
a
variety
of
different
ways
in
JSON-LD.
Except
within
a
context
definition,
term
s
in
the
key
position
in
a
JSON
object
that
have
a
mapping
to
an
absolute
IRI
or
another
term
in
the
active
context
are
expanded
to
an
IRI
by
JSON-LD
processors.
An
IRI
is
generated
for
the
string
value
specified
using
@id
or
@type
.
An
IRI
is
generated
for
the
string
value
of
any
key
for
which
there
are
coercion
rules
in
effect
that
identify
the
value
as
an
@id
.
</del>
<ins class="diff-chg">In
JSON-LD,
</ins>
IRIs
may
be
represented
as
an
<a class="tref internalDFN" title="absolute-iri" href="#dfn-absolute-iri">
absolute
<abbr title="Internationalized Resource Identifier">
IRI
</abbr>
<del class="diff-old">,
a
relative
IRI
,
a
term
,
</del>
</a>
or
a
<del class="diff-old">compact
</del>
<a class="tref internalDFN" title="relative-iri" href="#dfn-relative-iri">
<ins class="diff-chg">relative
</ins>
<abbr title="Internationalized Resource Identifier">
IRI
</abbr>
</a>.
An
<dfn title="absolute-iri" id="dfn-absolute-iri">
absolute
<abbr title="Internationalized Resource Identifier">
IRI
</abbr>
</dfn>
is
defined
in
[
<cite>
<a class="bibref" href="#bib-RFC3987">
RFC3987
</a>
</cite>
]
<ins class="diff-new">as
</ins>
containing
a
<em>
scheme
</em>
along
with
<em>
path
</em>
and
optional
<em>
query
</em>
and
<em>
fragment
</em>
segments.
A
<dfn title="relative-iri" id="dfn-relative-iri">
relative
<abbr title="Internationalized Resource Identifier">
IRI
</abbr>
</dfn>
is
an
<abbr title="Internationalized Resource Identifier">
IRI
</abbr>
that
is
relative
to
some
other
<a class="tref internalDFN" title="absolute-iri" href="#dfn-absolute-iri">
absolute
<abbr title="Internationalized Resource Identifier">
IRI
</abbr>
</a>.
In
JSON-LD
all
<a class="tref internalDFN" title="relative-iri" href="#dfn-relative-iri">
relative
<del class="diff-old">IRI
</del>
<ins class="diff-chg">IRIs
</ins>
</a>
<del class="diff-old">s
</del>
are
resolved
relative
to
the
<dfn title="base-iri" id="dfn-base-iri">
base
<abbr title="Internationalized Resource Identifier">
IRI
</abbr>
</dfn>
associated
with
the
<del class="diff-old">document
(typically,
</del>
<ins class="diff-chg">document.
</ins></p><p><ins class="diff-chg">
A
</ins><a class="tref internalDFN" title="string" href="#dfn-string"><ins class="diff-chg">
string
</ins></a><ins class="diff-chg">
is
interpreted
as
an
</ins><a class="tref internalDFN" title="iri" href="#dfn-iri"><abbr title="Internationalized Resource Identifier"><ins class="diff-chg">
IRI
</ins></abbr></a><ins class="diff-chg">
when
it
is
</ins>
the
<del class="diff-old">directory
</del>
<ins class="diff-chg">value
of
an
</ins><code><ins class="diff-chg">
@id
</ins></code><ins class="diff-chg">
member:
</ins></p>  <div class="example"><div class="example-title"><span>Example 6</span>: Values of @id are interpreted as IRI</div><pre class="example">{<ins class="diff-chg">
...
  &quot;homepage&quot;: { &quot;<span class="diff">@id</span>&quot;: &quot;http://example.com/&quot; }
...
}
</ins></pre></div><p><ins class="diff-chg">
Values
that
are
interpreted
as
</ins><a class="tref internalDFN" title="iri" href="#dfn-iri"><ins class="diff-chg">
IRIs
</ins></a>,<ins class="diff-chg">
can
also
be
expressed
as
</ins><a class="tref internalDFN" title="relative-iri" href="#dfn-relative-iri"><ins class="diff-chg">
relative
IRIs
</ins></a>.<ins class="diff-chg">
For
example,
assuming
</ins>
that
<del class="diff-old">contains
</del>
the
<ins class="diff-new">following
</ins>
document
<del class="diff-old">or
</del>
<ins class="diff-chg">is
located
at
</ins><code><ins class="diff-chg">
http://example.com/about/
</ins></code>,
the
<del class="diff-old">document
itself).
</del>
<a class="tref internalDFN" title="relative-iri" href="#dfn-relative-iri">
<ins class="diff-chg">relative
</ins><abbr title="Internationalized Resource Identifier"><ins class="diff-chg">
IRI
</ins></abbr></a><code>../</code><ins class="diff-chg">
would
expand
to
</ins><code><ins class="diff-chg">
http://example.com/
</ins></code><ins class="diff-chg">
(for
more
information
on
where
</ins><a class="tref internalDFN" title="relative-iri" href="#dfn-relative-iri"><ins class="diff-chg">
relative
IRIs
</ins></a><ins class="diff-chg">
can
be
used,
please
refer
to
appendix
</ins><a href="#json-ld-grammar" class="sec-ref"><span class="secno"><ins class="diff-chg">
B.
</ins></span><span class="sec-title"><ins class="diff-chg">
JSON-LD
Grammar
</ins></span></a><ins class="diff-chg">
).
</ins>
</p>
  <div class="example"><div class="example-title"><span>Example 7</span>: IRIs can be relative</div><pre class="example">{
<ins class="diff-new">...
  &quot;homepage&quot;: { &quot;<span class="diff">@id</span>&quot;: &quot;../&quot; }
...
}
</ins></pre></div>
<p>
<a class="tref internalDFN" title="absolute-iri" href="#dfn-absolute-iri">
<ins class="diff-new">Absolute
</ins>
IRIs
</a>
can
be
expressed
directly
in
the
key
position
like
so:
</p>
<del class="diff-old">{
</del>
  <div class="example"><div class="example-title"><span>Example 8</span>: IRI as a key</div><pre class="example">{
...
<del class="diff-old">  &quot;&quot;: &quot;Manu Sporny&quot;,
</del>
<ins class="diff-chg">  &quot;<span class="diff">http://schema.org/name</span>&quot;: &quot;Manu Sporny&quot;,
</ins>
...
}
</pre>
</div>
<p>
In
the
example
above,
the
key
<code>
<del class="diff-old">http://xmlns.com/foaf/0.1/name
</del>
<ins class="diff-chg">http://schema.org/name
</ins>
</code>
is
interpreted
as
an
<a class="tref internalDFN" title="absolute-iri" href="#dfn-absolute-iri">
<ins class="diff-chg">absolute
</ins>
<abbr title="Internationalized Resource Identifier">
IRI
</abbr>
</a>
because
it
contains
a
colon
(
<code>:
</code>
)
and
<del class="diff-old">the
'http'
prefix
does
not
exist
in
the
context.
Term
expansion
occurs
for
IRIs
if
the
value
matches
a
term
defined
within
the
active
context
:
{
  &quot;&quot;:
  {
    &quot;&quot;
...
  },
  &quot;&quot;: &quot;Manu Sporny&quot;,
  &quot;status&quot;: &quot;trollin'&quot;,
...
}
Term
s
are
case
sensitive,
and
must
be
matched
using
</del>
<ins class="diff-chg">it
is
neither
</ins>
a
<del class="diff-old">case-sensitive
comparison.
JSON
keys
that
do
not
expand
to
an
absolute
</del>
<a class="tref internalDFN" title="compact-iri" href="#dfn-compact-iri">
<ins class="diff-chg">compact
</ins>
<abbr title="Internationalized Resource Identifier">
IRI
</abbr>
<del class="diff-old">are
ignored,
or
removed
in
some
cases,
by
the
[
</del>
<del class="diff-old">JSON-LD-API
</del>
</a>
<del class="diff-old">].
However,
JSON
keys
that
do
not
include
</del>
<ins class="diff-chg">nor
</ins>
a
<del class="diff-old">mapping
in
the
context
are
still
considered
valid
expressions
in
JSON-LD
documents
-
the
keys
just
don't
have
any
machine-readable,
semantic
meaning.
</del>
<a class="tref internalDFN" title="blank-node-identifier" href="#dfn-blank-node-identifier">
<ins class="diff-chg">blank
node
identifier
</ins></a>.
</p>
<p>
<del class="diff-old">Prefix
es
are
expanded
when
the
form
of
the
value
is
a
compact
</del>
<ins class="diff-chg">Term-to-
</ins>
<abbr title="Internationalized Resource Identifier">
IRI
</abbr>
<del class="diff-old">represented
as
a
prefix:suffix
combination,
and
</del>
<ins class="diff-chg">expansion
occurs
if
</ins>
the
<del class="diff-old">prefix
</del>
<ins class="diff-chg">key
</ins>
matches
a
<a class="tref internalDFN" title="term" href="#dfn-term">
term
</a>
defined
within
the
<a class="tref internalDFN" title="active-context" href="#dfn-active-context">
active
context
</a>:
</p>
<del class="diff-old">{
</del>
  <div class="example"><div class="example-title"><span>Example 9</span>: Term expansion from context definition</div><pre class="example">{
  &quot;<span class="diff">@context</span>&quot;:
  {
<del class="diff-old">    &quot;&quot;
...
</del>
<ins class="diff-chg">    &quot;<span class="diff">name</span>&quot;: &quot;<span class="diff">http://schema.org/name</span>&quot;
</ins>
  },
<del class="diff-old">  &quot;&quot;: &quot;Manu Sporny&quot;,
...
</del>
<ins class="diff-chg">  &quot;<span class="diff">name</span>&quot;: &quot;Manu Sporny&quot;,
  &quot;status&quot;: &quot;trollin'&quot;
</ins>
}
</pre>
</div>
<p>
<del class="diff-old">foaf:name
above
will
automatically
expand
out
to
the
IRI
http://xmlns.com/foaf/0.1/name
.
See
Compact
IRIs
for
more
details.
An
IRI
is
generated
when
a
</del>
JSON
<del class="diff-old">object
is
used
in
the
value
position
</del>
<ins class="diff-chg">keys
</ins>
that
<del class="diff-old">contains
an
@id
keyword:
{
...
  &quot;homepage&quot;: { &quot;&quot;: &quot;http://manu.sporny.org&quot; }
...
}
Note
Specifying
a
JSON
object
with
an
@id
key
is
used
</del>
<ins class="diff-chg">do
not
expand
</ins>
to
<del class="diff-old">identify
that
object
using
</del>
an
<a class="tref internalDFN" title="iri" href="#dfn-iri">
<abbr title="Internationalized Resource Identifier">
IRI
</abbr>
<del class="diff-old">.
When
the
object
has
only
the
@id
,
it
is
called
a
subject
reference
.
This
facility
may
also
be
used
to
link
to
another
subject
definition
using
a
mechanism
called
embedding
</del>
</a>,
<del class="diff-old">which
is
covered
</del>
<ins class="diff-chg">such
as
</ins><code><ins class="diff-chg">
status
</ins></code>
in
the
<del class="diff-old">section
titled
Embedding
.
</del>
<ins class="diff-chg">example
above,
are
not
Linked
Data
and
thus
ignored
when
processed.
</ins>
</p>
<p>
If
type
<a class="tref internalDFN" title="coercion" href="#dfn-coercion">
coercion
</a>
rules
are
specified
in
the
<code>
@context
</code>
for
a
particular
<a class="tref internalDFN" title="term" href="#dfn-term">
term
</a>
or
property
<abbr title="Internationalized Resource Identifier">
IRI
</abbr>,
an
<abbr title="Internationalized Resource Identifier">
IRI
</abbr>
is
generated:
</p>
  <div class="example"><div class="example-title"><span>Example 10</span>: Type coercion</div><pre class="example">{<span class="diff">
  &quot;@context&quot;:
  {
    ...
    &quot;homepage&quot;:
    {
<del class="diff-old">      &quot;@id&quot;: &quot;http://xmlns.com/foaf/0.1/homepage&quot;,
</del>
<ins class="diff-chg">      &quot;@id&quot;: &quot;http://schema.org/homepage&quot;,
</ins>
      &quot;@type&quot;: &quot;@id&quot;
    }
    ...
  }</span>
...
  &quot;homepage&quot;: &quot;http://manu.sporny.org/&quot;,
...
}
</pre>
</div>
<p>
In
the
example
above,
even
though
the
value
<code>
http://manu.sporny.org/
</code>
is
expressed
as
a
JSON
<a class="tref internalDFN" title="string" href="#dfn-string">
string
</a>,
the
type
<a class="tref internalDFN" title="coercion" href="#dfn-coercion">
coercion
</a>
rules
will
transform
the
value
into
an
<abbr title="Internationalized Resource Identifier">
IRI
</abbr>
when
<del class="diff-old">processed
by
a
</del>
<ins class="diff-chg">generating
the
</ins><a class="tref internalDFN" title="json-ld-graph" href="#dfn-json-ld-graph">
JSON-LD
<del class="diff-old">Processor.
</del>
<ins class="diff-chg">graph
</ins></a>.<ins class="diff-chg">
See
</ins><a class="sectionRef sec-ref" href="#type-coercion"><ins class="diff-chg">
section
6.5
Type
Coercion
</ins></a><ins class="diff-chg">
for
more
details
about
this
feature.
</ins>
</p>
<p>
<ins class="diff-new">In
summary,
</ins><a class="tref internalDFN" title="iri" href="#dfn-iri"><ins class="diff-new">
IRIs
</ins></a><ins class="diff-new">
can
be
expressed
in
a
variety
of
different
ways
in
JSON-LD:
</ins></p><ol><li><a class="tref internalDFN" title="json-object" href="#dfn-json-object"><ins class="diff-new">
JSON
object
</ins></a><ins class="diff-new">
keys
that
have
a
</ins><a class="tref internalDFN" title="term" href="#dfn-term"><ins class="diff-new">
term
</ins></a><ins class="diff-new">
mapping
in
the
</ins><a class="tref internalDFN" title="active-context" href="#dfn-active-context"><ins class="diff-new">
active
context
</ins></a><ins class="diff-new">
expand
to
an
</ins><a class="tref internalDFN" title="iri" href="#dfn-iri"><abbr title="Internationalized Resource Identifier"><ins class="diff-new">
IRI
</ins></abbr></a><ins class="diff-new">
(only
applies
outside
of
the
</ins><a class="tref internalDFN" title="context-definition" href="#dfn-context-definition"><ins class="diff-new">
context
definition
</ins></a><ins class="diff-new">
).
</ins></li><li><ins class="diff-new">
An
</ins><a class="tref internalDFN" title="iri" href="#dfn-iri"><abbr title="Internationalized Resource Identifier"><ins class="diff-new">
IRI
</ins></abbr></a><ins class="diff-new">
is
generated
for
the
</ins><a class="tref internalDFN" title="string" href="#dfn-string"><ins class="diff-new">
string
</ins></a><ins class="diff-new">
value
specified
using
</ins><code><ins class="diff-new">
@id
</ins></code><ins class="diff-new">
or
</ins><code><ins class="diff-new">
@type
</ins></code>.</li><li><ins class="diff-new">
An
</ins><a class="tref internalDFN" title="iri" href="#dfn-iri"><abbr title="Internationalized Resource Identifier"><ins class="diff-new">
IRI
</ins></abbr></a><ins class="diff-new">
is
generated
for
the
</ins><a class="tref internalDFN" title="string" href="#dfn-string"><ins class="diff-new">
string
</ins></a><ins class="diff-new">
value
of
any
key
for
which
there
are
</ins><a class="tref internalDFN" title="coercion" href="#dfn-coercion"><ins class="diff-new">
coercion
</ins></a><ins class="diff-new">
rules
that
contain
a
</ins><code><ins class="diff-new">
@type
</ins></code><ins class="diff-new">
key
that
is
set
to
a
value
of
</ins><code><ins class="diff-new">
@id
</ins></code><ins class="diff-new">
or
</ins><code><ins class="diff-new">
@vocab
</ins></code>.</li></ol>
</div>
<div class="informative section" id="node-identifiers">
<h3>
<span class="secno">
<del class="diff-old">3.3
</del>
<ins class="diff-chg">5.3
</ins>
</span>
<del class="diff-old">Identifying
the
Subject
</del>
<ins class="diff-chg">Node
Identifiers
</ins>
</h3>
<p>
<em>
<ins class="diff-new">This
section
is
non-normative.
</ins></em></p>
<p>
To
be
able
to
externally
reference
<a class="tref internalDFN" title="node" href="#dfn-node">
nodes
</a>
in
a
<del class="diff-old">graph,
</del>
<a class="tref internalDFN" title="json-ld-graph" href="#dfn-json-ld-graph">
<ins class="diff-chg">graph
</ins></a>,
it
is
important
that
<del class="diff-old">each
node
has
</del>
<a class="tref internalDFN" title="node" href="#dfn-node">
<ins class="diff-chg">nodes
</ins></a><ins class="diff-chg">
have
</ins>
an
<del class="diff-old">unambiguous
</del>
identifier.
<a class="tref internalDFN" title="iri" href="#dfn-iri">
<del class="diff-old">IRI
</del>
<ins class="diff-chg">IRIs
</ins>
</a>
<del class="diff-old">s
</del>
are
a
fundamental
concept
of
<a class="tref internalDFN" title="linked-data" href="#dfn-linked-data">
Linked
Data
</a>,
<del class="diff-old">and
nodes
should
have
a
de-referencable
identifier
used
to
name
and
locate
them.
For
</del>
<ins class="diff-chg">for
</ins><a class="tref internalDFN" title="node" href="#dfn-node">
nodes
</a>
to
be
truly
linked,
<del class="diff-old">de-referencing
</del>
<ins class="diff-chg">dereferencing
</ins>
the
identifier
should
result
in
a
representation
of
that
<a class="tref internalDFN" title="node" href="#dfn-node">
node
<del class="diff-old">(for
example,
using
a
URL
to
retrieve
a
web
page).
Associating
an
IRI
with
a
node
tells
</del>
</a>.
<ins class="diff-chg">This
may
allow
</ins>
an
application
<del class="diff-old">that
the
returned
document
contains
a
description
of
the
node
requested.
JSON-LD
documents
may
also
contain
descriptions
of
other
nodes,
so
it
is
necessary
</del>
to
<del class="diff-old">be
able
to
uniquely
identify
each
</del>
<ins class="diff-chg">retrieve
further
information
about
a
</ins><a class="tref internalDFN" title="node" href="#dfn-node">
node
<del class="diff-old">which
may
be
externally
referenced.
</del>
</a>.
</p>
<p>
<del class="diff-old">A
subject
of
</del>
<ins class="diff-chg">In
JSON-LD,
</ins>
a
<del class="diff-old">JSON
object
</del>
<a class="tref internalDFN" title="node" href="#dfn-node">
<ins class="diff-chg">node
</ins>
</a>
is
<del class="diff-old">a
node
</del>
identified
using
the
<code>
@id
</code>
<del class="diff-old">key.
The
subject
is
the
first
piece
of
information
needed
by
the
JSON-LD
processor
in
order
to
create
the
(subject,
property,
object)
tuple,
also
known
as
a
triple.
</del>
<a class="tref internalDFN" title="keyword" href="#dfn-keyword">
<ins class="diff-chg">keyword
</ins></a>:
</p>
<del class="diff-old">{
</del>
  <div class="example"><div class="example-title"><span>Example 11</span>: Identifying a node</div><pre class="example">{
  &quot;@context&quot;:
  {
    ...
<del class="diff-old">    &quot;homepage&quot;:
    {
      &quot;@id&quot;: &quot;http://xmlns.com/foaf/0.1/homepage&quot;,
      &quot;@type&quot;: &quot;@id&quot;
    }
    ...
</del>
<ins class="diff-chg">    &quot;name&quot;: &quot;http://schema.org/name&quot;
</ins>
  },
<del class="diff-old">  &quot;&quot;,
  &quot;homepage&quot;: &quot;http://manu.sporny.org/&quot;,
...
</del>
  <span class="diff">&quot;@id&quot;: &quot;http://me.markus-lanthaler.com/&quot;</span>,
<ins class="diff-chg">  &quot;name&quot;: &quot;Markus Lanthaler&quot;,
  ...
</ins>
}
</pre>
</div>
<p>
The
example
above
<del class="diff-old">would
set
the
subject
to
the
IRI
http://example.org/people#joebob
.
A
JSON
object
used
to
define
property
values
is
called
</del>
<ins class="diff-chg">contains
</ins>
a
<del class="diff-old">subject
definition
.
Subject
definitions
do
not
require
an
@id
.
A
subject
definition
that
does
not
contain
an
@id
property
defines
properties
of
an
unlabeled
</del>
<a class="tref internalDFN" title="node-object" href="#dfn-node-object">
node
<del class="diff-old">.
Note
To
ensure
the
best
possible
performance,
when
possible,
it
is
a
best
practice
to
put
JSON-LD
keyword
s,
such
as
@id
and
@context
before
other
key-value
pairs
in
a
JSON
object
.
However,
keys
in
a
JSON
</del>
object
</a>
<del class="diff-old">are
not
ordered,
so
processors
must
not
depend
on
key
ordering.
If
keywords
are
not
listed
first,
processors
have
to
save
each
key-value
pair
until
at
least
the
@context
and
</del>
<ins class="diff-chg">identified
by
</ins>
the
<abbr title="Internationalized Resource Identifier">
<ins class="diff-new">IRI
</ins></abbr>
<code>
<del class="diff-old">@id
are
processed.
Not
specifying
those
keywords
first
creates
a
memory
and
complexity
burden
for
low-memory
footprint
processors,
forcing
them
to
use
more
memory
and
computing
cycles
than
necessary.
</del>
<ins class="diff-chg">http://me.markus-lanthaler.com/
</ins></code>.
</p>
</div>
<div class="informative section" id="specifying-the-type">
<h3>
<span class="secno">
<del class="diff-old">3.4
</del>
<ins class="diff-chg">5.4
</ins>
</span>
Specifying
the
Type
</h3>
<p>
<em>
<ins class="diff-new">This
section
is
non-normative.
</ins></em></p>
<p>
The
type
of
a
particular
<del class="diff-old">subject
</del>
<ins class="diff-chg">node
</ins>
can
be
specified
using
the
<code>
@type
</code>
<a class="tref internalDFN" title="keyword" href="#dfn-keyword">
keyword
</a>.
<del class="diff-old">Specifying
the
type
in
this
way
will
generate
a
triple
of
the
form
(subject,
type,
type-
IRI
).
To
be
considered
</del>
<ins class="diff-chg">In
</ins><a class="tref internalDFN" title="linked-data" href="#dfn-linked-data">
Linked
Data
</a>,
types
<del class="diff-old">must
be
</del>
<ins class="diff-chg">are
</ins>
uniquely
identified
<del class="diff-old">by
</del>
<ins class="diff-chg">with
</ins>
an
<a class="tref internalDFN" title="iri" href="#dfn-iri">
<abbr title="Internationalized Resource Identifier">
IRI
</abbr>
</a>.
</p>
<del class="diff-old">{
</del>
<div class="example"><div class="example-title"><span>Example 12</span>: Specifying the type for a node</div><pre class="example">{
...
<del class="diff-old">  &quot;@id&quot;: &quot;http://example.org/people#joebob&quot;,
  &quot;&quot;,
</del>
<ins class="diff-chg">  &quot;@id&quot;: &quot;http://example.org/places#BrewEats&quot;,
  &quot;<span class="diff">@type</span>&quot;: &quot;<span class="diff">http://schema.org/Restaurant</span>&quot;,
</ins>
...
}
</pre>
</div>
<p>
<ins class="diff-chg">A
node
can
be
assigned
more
than
one
type
by
using
an
</ins><a class="tref internalDFN" title="array" href="#dfn-array"><ins class="diff-chg">
array
</ins></a>:</p><div class="example"><div class="example-title"><span>Example 13</span>: Specifying multiple types for a node</div><pre class="example">{<ins class="diff-chg">
...
  &quot;@id&quot;: &quot;http://example.org/places#BrewEats&quot;,
  &quot;<span class="diff">@type</span>&quot;: <span class="diff">[ &quot;http://schema.org/Restaurant&quot;, &quot;http://schema.org/Brewery&quot; ],</span>
...
}
</ins></pre>
<del class="diff-old">3.5
String
Internationalization
</del>
</div>
<p>
<del class="diff-old">At
times,
it
is
important
to
annotate
a
string
with
its
language.
In
JSON-LD
this
is
possible
in
a
variety
</del>
<ins class="diff-chg">The
value
</ins>
of
<del class="diff-old">ways.
Firstly,
it
is
possible
to
define
a
default
language
for
</del>
a
<del class="diff-old">JSON-LD
document
by
setting
the
</del>
<code>
<del class="diff-old">@language
</del>
<ins class="diff-chg">@type
</ins>
</code>
key
<del class="diff-old">in
the
@context
or
in
</del>
<ins class="diff-chg">may
also
be
</ins>
a
<a class="tref internalDFN" title="term" href="#dfn-term">
term
</a>
<del class="diff-old">definition:
</del>
<ins class="diff-chg">defined
in
the
</ins><a class="tref internalDFN" title="active-context" href="#dfn-active-context"><ins class="diff-chg">
active
context
</ins></a>:
</p>
<del class="diff-old">{
  &quot;@context&quot;:
  {
</del>
<div class="example"><div class="example-title"><span>Example 14</span>: Using a term to specify the type</div><pre class="example">{
<ins class="diff-chg">  &quot;@context&quot;: {
</ins>
    ...
<del class="diff-old">    &quot;@language&quot;: &quot;ja&quot;
  },
  &quot;name&quot;: ,
  &quot;occupation&quot;:
</del>
    <span class="diff">&quot;Restaurant&quot;: &quot;http://schema.org/Restaurant&quot;, </span>
    <span class="diff">&quot;Brewery&quot;: &quot;http://schema.org/Brewery&quot;</span>
<ins class="diff-chg">  }
  &quot;@id&quot;: &quot;http://example.org/places#BrewEats&quot;,
</ins>  <span class="diff">&quot;@type&quot;: [ &quot;Restaurant&quot;, &quot;Brewery&quot; ]</span>,<ins class="diff-chg">
  ...
</ins>
}
</pre>
</div>
</div>
</div>
<div class="normative section" id="advanced-concepts">
<h2>
<span class="secno">
<ins class="diff-new">6.
</ins></span><ins class="diff-new">
Advanced
Concepts
</ins></h2>
<p>
<del class="diff-old">The
example
</del>
<ins class="diff-chg">JSON-LD
has
a
number
of
features
that
provide
functionality
</ins>
above
<del class="diff-old">would
associate
the
ja
language
code
with
</del>
<ins class="diff-chg">and
beyond
</ins>
the
<del class="diff-old">two
string
s
</del>
<ins class="diff-chg">core
functionality
described
above.
The
following
section
describes
this
advanced
functionality
in
more
detail.
</ins></p><div class="informative section" id="base-iri"><h3><span class="secno"><ins class="diff-chg">
6.1
</ins></span><ins class="diff-chg">
Base
</ins><abbr title="Internationalized Resource Identifier"><ins class="diff-chg">
IRI
</ins></abbr></h3><p>
<em>
<del class="diff-old">花澄
</del>
<ins class="diff-chg">This
section
is
non-normative.
</ins>
</em>
</p>
<div class="issue atrisk">
<div class="issue-title">
<span>
<ins class="diff-new">Feature
at
Risk
1
</ins></span>:<ins class="diff-new">
@base
keyword
</ins></div><div class="atrisk"><p class="atrisk-head"><ins class="diff-new">
Note:
This
feature
is
</ins><a href="http://www.w3.org/2005/10/Process-20051014/tr#cfi"><ins class="diff-new">
&quot;at
risk&quot;
</ins></a>
and
<del class="diff-old">科学者
.
Languages
must
</del>
<ins class="diff-chg">may
</ins>
be
<del class="diff-old">well-formed
language
tags
according
</del>
<ins class="diff-chg">removed
from
this
specification
based
on
feedback.
Please
send
feedback
</ins>
to
<del class="diff-old">[
BCP47
</del>
<a href="mailto:public-rdf-comments@w3.org">
<ins class="diff-chg">public-rdf-comments@w3.org
</ins></a>.<ins class="diff-chg">
For
the
current
status
see
</ins><a href="http://www.w3.org/2011/rdf-wg/wiki/JSON-LD_Features_at_Risk"><ins class="diff-chg">
features
&quot;at
risk&quot;
in
JSON-LD
1.0
</ins>
</a>
<del class="diff-old">].
</del>
</p>
<p>
<del class="diff-old">It
is
possible
to
override
</del>
<ins class="diff-chg">Support
for
</ins>
the
<del class="diff-old">default
language
by
using
</del>
<code>
<ins class="diff-chg">@base
</ins></code><ins class="diff-chg">
keyword
might
be
removed
from
JSON-LD
1.0
if
implementation
experience
reveals
that
</ins>
the
<del class="diff-old">expanded
form
of
</del>
<ins class="diff-chg">fact
that
</ins>
a
<del class="diff-old">value:
{
  &quot;@context&quot;: {
    ...
    &quot;@language&quot;: &quot;ja&quot;
  },
  &quot;name&quot;: &quot;花澄&quot;,
  &quot;occupation&quot;: {
    &quot;@value&quot;: &quot;Scientist&quot;,
    &quot;@language&quot;: &quot;en&quot;
  }
}
</del>
<ins class="diff-chg">document
may
have
multiple
base
IRIs
is
confusing
for
developers.
</ins>
It
is
also
<del class="diff-old">possible
to
override
the
default
language
or
specify
a
plain
value
by
omitting
the
</del>
<ins class="diff-chg">being
discussed
whether
relative
IRIs
are
allowed
as
values
of
</ins>
<code>
<del class="diff-old">@language
</del>
<ins class="diff-chg">@base
</ins>
</code>
<del class="diff-old">tag
</del>
or
<del class="diff-old">setting
it
</del>
<ins class="diff-chg">whether
the
empty
string
should
be
used
</ins>
to
<del class="diff-old">null
</del>
<ins class="diff-chg">explicitly
specify
that
there
isn't
a
base
</ins><abbr title="Internationalized Resource Identifier"><ins class="diff-chg">
IRI
</ins></abbr>,<ins class="diff-chg">
which
could
be
used
to
ensure
that
relative
IRIs
remain
relative
</ins>
when
<del class="diff-old">expressing
the
expanded
value:
</del>
<ins class="diff-chg">expanding.
</ins>
</p>
<del class="diff-old">{
  &quot;@context&quot;: {
    ...
    &quot;@language&quot;: &quot;ja&quot;
  },
  &quot;name&quot;: {
    &quot;@value&quot;: &quot;Frank&quot;
  },
  &quot;occupation&quot;:  {
    &quot;@value&quot;: &quot;Ninja&quot;,
    &quot;@language&quot;: &quot;en&quot;
  },
  &quot;speciality&quot;: &quot;手裏剣&quot;
}
</del>
</div>
<del class="diff-old">Note
</del>
</div>
<p>
<ins class="diff-new">JSON-LD
allows
</ins><a class="tref internalDFN" title="iri" href="#dfn-iri"><abbr title="Internationalized Resource Identifier"><ins class="diff-new">
IRI
</ins></abbr>
<del class="diff-old">Please
note
that
language
associations
must
only
be
applied
to
plain
literal
string
s.
That
is,
typed
value
</del>
</a>
s
<del class="diff-old">or
values
that
are
subject
</del>
to
<del class="diff-old">type
coercion
won't
</del>
be
<del class="diff-old">language
tagged.
To
clear
</del>
<ins class="diff-chg">specified
in
a
relative
form
which
is
resolved
against
</ins>
the
<del class="diff-old">default
language
for
</del>
<ins class="diff-chg">document
base
according
</ins><cite><a href="http://tools.ietf.org/html/rfc3986#section-5.1"><ins class="diff-chg">
section
5.1
Establishing
</ins>
a
<del class="diff-old">subtree,
@language
can
</del>
<ins class="diff-chg">Base
URI
</ins></a></cite><ins class="diff-chg">
of
[
</ins><cite><a class="bibref" href="#bib-RFC3986"><ins class="diff-chg">
RFC3986
</ins></a></cite><ins class="diff-chg">
].
The
base
</ins><abbr title="Internationalized Resource Identifier"><ins class="diff-chg">
IRI
</ins></abbr><ins class="diff-chg">
may
</ins>
be
<ins class="diff-new">explicitly
</ins>
set
<del class="diff-old">to
null
in
</del>
<ins class="diff-chg">with
</ins>
a
<del class="diff-old">local
</del>
<a class="tref internalDFN" title="context" href="#dfn-context">
context
</a>
<del class="diff-old">as
follows:
</del>
<ins class="diff-chg">using
the
</ins><code><ins class="diff-chg">
@base
</ins></code><ins class="diff-chg">
keyword.
</ins>
</p>
<del class="diff-old">{
</del>
<p>
<ins class="diff-chg">For
example,
if
a
JSON-LD
document
was
retrieved
from
</ins><code><ins class="diff-chg">
http://example.com/document.jsonld
</ins></code>,<ins class="diff-chg">
relative
IRIs
would
resolve
against
that
</ins><abbr title="Internationalized Resource Identifier"><ins class="diff-chg">
IRI
</ins></abbr>:</p>  <div class="example"><div class="example-title"><span>Example 15</span>: Use a relative IRI as node identifier</div><pre class="example">{
  &quot;@context&quot;: {
<del class="diff-old">    ...
    &quot;@language&quot;: &quot;ja&quot;
</del>
<ins class="diff-chg">    &quot;label&quot;: &quot;http://www.w3.org/2000/01/rdf-schema#label&quot;
</ins>
  },
<del class="diff-old">  &quot;name&quot;: &quot;花澄&quot;,
  &quot;details&quot;: {
    &quot;@context&quot;: {
      &quot;@language&quot;: null
    },
    &quot;occupation&quot;: &quot;Ninja&quot;
  }
</del>
  <span class="diff">&quot;@id&quot;: &quot;&quot;</span>,
<ins class="diff-chg">  &quot;label&quot;: &quot;Just a simple document&quot;
</ins>
}
</pre>
</div>
<del class="diff-old">Note
JSON-LD
allows
one
to
associate
language
information
with
term
s.
See
Expanded
Term
Definition
for
more
details.
3.6
JSON-LD
Syntax
</del>
<p>
<del class="diff-old">A
JSON-LD
</del>
<ins class="diff-chg">This
document
uses
an
empty
</ins><code><ins class="diff-chg">
@id
</ins></code>,<ins class="diff-chg">
which
resolves
to
the
document
base.
However,
if
the
</ins>
document
is
<del class="diff-old">first,
and
foremost,
</del>
<ins class="diff-chg">moved
to
</ins>
a
<del class="diff-old">JSON
document
(as
defined
in
[
</del>
<ins class="diff-chg">different
location,
the
</ins><a class="tref internalDFN" title="iri" href="#dfn-iri"><abbr title="Internationalized Resource Identifier"><ins class="diff-chg">
IRI
</ins></abbr>
<del class="diff-old">RFC5988
</del>
</a>
<ins class="diff-new">would
change.
To
prevent
this
without
having
to
use
an
</ins><a class="tref internalDFN" title="absolute-iri" href="#dfn-absolute-iri"><ins class="diff-new">
absolute
</ins><abbr title="Internationalized Resource Identifier"><ins class="diff-new">
IRI
</ins></abbr>
<del class="diff-old">]),
and
any
syntactically
correct
JSON
document
must
be
processed
by
</del>
</a>,
a
<del class="diff-old">conforming
JSON-LD
processor.
However,
JSON-LD
describes
</del>
<a class="tref internalDFN" title="context" href="#dfn-context">
<ins class="diff-chg">context
</ins></a><ins class="diff-chg">
may
define
</ins>
a
<del class="diff-old">specific
syntax
</del>
<code>
<ins class="diff-chg">@base
</ins></code><ins class="diff-chg">
mapping,
</ins>
to
<del class="diff-old">use
for
expressing
Linked
Data.
This
includes
</del>
<ins class="diff-chg">overwrite
</ins>
the
<del class="diff-old">use
of
specific
keywords,
as
identified
in
Syntax
Tokens
and
Keywords
</del>
<ins class="diff-chg">base
</ins><abbr title="Internationalized Resource Identifier"><ins class="diff-chg">
IRI
</ins></abbr>
for
<del class="diff-old">expressing
subject
definitions
,
values,
and
</del>
the
<del class="diff-old">context
.
See
Appendix
A
for
authoring
guidelines
and
a
BNF
description
of
JSON-LD.
</del>
<ins class="diff-chg">document.
</ins>
</p>
  <div class="example"><div class="example-title"><span>Example 16</span>: Setting the document base in a document</div><pre class="example">{
<ins class="diff-new">  &quot;@context&quot;: {
</ins>    <span class="diff">&quot;@base&quot;: &quot;http://example.com/document.jsonld&quot;</span><ins class="diff-new">
  },
  &quot;@id&quot;: &quot;&quot;,
  &quot;label&quot;: &quot;Just a simple document&quot;
}
</ins></pre>
</div>
</div>
<div class="informative section" id="default-vocabulary">
<h3>
<span class="secno">
<del class="diff-old">4.
</del>
<ins class="diff-chg">6.2
</ins>
</span>
<del class="diff-old">Advanced
Concepts
</del>
<ins class="diff-chg">Default
Vocabulary
</ins></h3><p>
<em>
This
section
is
<del class="diff-old">normative.
</del>
<ins class="diff-chg">non-normative.
</ins>
</em>
<del class="diff-old">JSON-LD
has
a
number
of
features
that
provide
functionality
above
and
beyond
the
core
functionality
described
above.
The
following
section
describes
this
advanced
functionality
in
more
detail.
</del>
<del class="diff-old">4.1
Compact
IRIs
</del>
</p>
<p>
<del class="diff-old">Term
s
in
Linked
Data
documents
may
draw
from
a
number
of
different
vocabularies
.
</del>
At
times,
<del class="diff-old">declaring
every
single
term
that
a
document
uses
can
require
</del>
<ins class="diff-chg">all
properties
and
types
may
come
from
</ins>
the
<del class="diff-old">developer
</del>
<ins class="diff-chg">same
vocabulary.
JSON-LD's
</ins><code><ins class="diff-chg">
@vocab
</ins></code><ins class="diff-chg">
keyword
allows
an
author
</ins>
to
<del class="diff-old">declare
tens,
if
</del>
<ins class="diff-chg">set
a
common
prefix
to
be
used
for
all
properties
and
types
that
do
</ins>
not
<del class="diff-old">hundreds
of
potential
vocabulary
</del>
<ins class="diff-chg">match
a
</ins>
<a class="tref internalDFN" title="term" href="#dfn-term">
term
</a>
<del class="diff-old">s
that
</del>
<ins class="diff-chg">and
</ins>
are
<del class="diff-old">used
across
</del>
<ins class="diff-chg">neither
a
</ins><a class="tref internalDFN" title="compact-iri" href="#dfn-compact-iri"><ins class="diff-chg">
compact
</ins><abbr title="Internationalized Resource Identifier"><ins class="diff-chg">
IRI
</ins></abbr></a><ins class="diff-chg">
nor
</ins>
an
<del class="diff-old">application.
This
is
</del>
<a class="tref internalDFN" title="absolute-iri" href="#dfn-absolute-iri">
<ins class="diff-chg">absolute
</ins><abbr title="Internationalized Resource Identifier"><ins class="diff-chg">
IRI
</ins></abbr></a><ins class="diff-chg">
(i.e.,
they
do
not
contain
</ins>
a
<del class="diff-old">concern
for
at
least
two
reasons:
the
first
</del>
<ins class="diff-chg">colon).
</ins></p>  <div class="example"><div class="example-title"><span>Example 17</span>: Using a common vocabulary prefix</div><pre class="example">{<ins class="diff-chg">
  &quot;@context&quot;: {
</ins>    <span class="diff">&quot;@vocab&quot;: &quot;http://schema.org/&quot;</span><ins class="diff-chg">
  }
  &quot;@id&quot;: &quot;http://example.org/places#BrewEats&quot;,
  &quot;@type&quot;: <span class="diff">&quot;Restaurant&quot;</span>,
</ins>  <span class="diff">&quot;name&quot;</span>: &quot;Brew Eats&quot;<ins class="diff-chg">
  ...
}
</ins></pre></div><p><ins class="diff-chg">
If
</ins><code><ins class="diff-chg">
@vocab
</ins></code>
is
<ins class="diff-new">used
but
certain
keys
in
an
</ins><a class="tref internalDFN" title="json-object" href="#dfn-json-object"><ins class="diff-new">
object
</ins></a><ins class="diff-new">
should
not
be
expanded
using
</ins>
the
<del class="diff-old">cognitive
load
on
the
developer
of
remembering
all
of
the
</del>
<ins class="diff-chg">vocabulary
</ins><a class="tref internalDFN" title="iri" href="#dfn-iri"><abbr title="Internationalized Resource Identifier"><ins class="diff-chg">
IRI
</ins></abbr></a>,<ins class="diff-chg">
a
</ins>
<a class="tref internalDFN" title="term" href="#dfn-term">
term
</a>
<del class="diff-old">s,
and
the
second
is
the
serialized
size
of
</del>
<ins class="diff-chg">can
be
explicitly
set
to
</ins><a class="tref internalDFN" title="null" href="#dfn-null"><ins class="diff-chg">
null
</ins></a><ins class="diff-chg">
in
</ins>
the
<a class="tref internalDFN" title="context" href="#dfn-context">
context
<del class="diff-old">if
it
is
specified
inline.
In
order
to
address
these
issues,
</del>
</a>.
<ins class="diff-chg">For
instance,
in
</ins>
the
<del class="diff-old">concept
of
a
compact
</del>
<ins class="diff-chg">example
below
the
</ins><code><ins class="diff-chg">
databaseId
</ins></code><ins class="diff-chg">
member
would
not
expand
to
an
</ins><a class="tref internalDFN" title="iri" href="#dfn-iri">
<abbr title="Internationalized Resource Identifier">
IRI
</abbr>
</a>.
</p>
  <div class="example"><div class="example-title"><span>Example 18</span>: Using the null keyword to ignore data</div><pre class="example">{
<ins class="diff-chg">  &quot;@context&quot;:
  {
     &quot;@vocab&quot;: &quot;http://schema.org/&quot;,
</ins>     <span class="diff">&quot;databaseId&quot;: null</span><ins class="diff-chg">
  },
    &quot;@id&quot;: &quot;http://example.org/places#BrewEats&quot;,
    &quot;@type&quot;: &quot;Restaurant&quot;,
    &quot;name&quot;: &quot;Brew Eats&quot;,
</ins>    <span class="diff">&quot;databaseId&quot;</span>: &quot;23987520&quot;<ins class="diff-chg">
}
</ins></pre></div></div><div class="informative section" id="compact-iris"><h3><span class="secno"><ins class="diff-chg">
6.3
</ins></span><ins class="diff-chg">
Compact
IRIs
</ins></h3><p><em><ins class="diff-chg">
This
section
</ins>
is
<del class="diff-old">introduced.
</del>
<ins class="diff-chg">non-normative.
</ins></em>
</p>
<p>
A
<dfn title="compact-iri" id="dfn-compact-iri">
compact
<abbr title="Internationalized Resource Identifier">
IRI
</abbr>
</dfn>
is
a
way
of
expressing
an
<a class="tref internalDFN" title="iri" href="#dfn-iri">
<abbr title="Internationalized Resource Identifier">
IRI
</abbr>
</a>
using
a
<em>
prefix
</em>
and
<em>
suffix
</em>
separated
by
a
colon
(
<code>:
</code>
<del class="diff-old">)
which
is
similar
to
the
CURIE
Syntax
in
[
RDFA-CORE
].
</del>
<ins class="diff-chg">).
</ins>
The
<dfn title="prefix" id="dfn-prefix">
prefix
</dfn>
is
a
<a class="tref internalDFN" title="term" href="#dfn-term">
term
</a>
taken
from
the
<a class="tref internalDFN" title="active-context" href="#dfn-active-context">
active
context
</a>
and
is
a
short
string
identifying
a
particular
<a class="tref internalDFN" title="iri" href="#dfn-iri">
<abbr title="Internationalized Resource Identifier">
IRI
</abbr>
</a>
in
a
JSON-LD
document.
For
example,
the
prefix
<code>
foaf
</code>
may
be
used
as
a
short
hand
for
the
Friend-of-a-Friend
vocabulary,
which
is
identified
using
the
<a class="tref internalDFN" title="iri" href="#dfn-iri">
<abbr title="Internationalized Resource Identifier">
IRI
</abbr>
</a>
<code>
http://xmlns.com/foaf/0.1/
</code>.
A
developer
may
append
any
of
the
FOAF
vocabulary
terms
to
the
end
of
the
prefix
to
specify
a
short-hand
version
of
the
<a class="tref internalDFN" title="absolute-iri" href="#dfn-absolute-iri">
absolute
<abbr title="Internationalized Resource Identifier">
IRI
</abbr>
</a>
for
the
vocabulary
term.
For
example,
<code>
foaf:name
</code>
would
be
expanded
<del class="diff-old">out
</del>
to
the
<abbr title="Internationalized Resource Identifier">
IRI
</abbr>
<code>
http://xmlns.com/foaf/0.1/name
</code>.
<del class="diff-old">Instead
of
having
</del>
</p>
  <div class="example"><div class="example-title"><span>Example 19</span>: Prefix expansion</div><pre class="example">{
<ins class="diff-chg">  &quot;<span class="diff">@context</span>&quot;:
  {
    &quot;<span class="diff">foaf</span>&quot;: &quot;<span class="diff">http://xmlns.com/foaf/0.1/</span>&quot;
...
  },
  &quot;@type&quot;: &quot;<span class="diff">foaf:Person</span>&quot;
  &quot;<span class="diff">foaf:name</span>&quot;: &quot;Dave Longley&quot;,
...
}
</ins></pre></div><p><ins class="diff-chg">
In
the
example
above,
</ins><code><ins class="diff-chg">
foaf:name
</ins></code><ins class="diff-chg">
expands
</ins>
to
<del class="diff-old">remember
and
type
out
</del>
the
<del class="diff-old">entire
</del>
<a class="tref internalDFN" title="iri" href="#dfn-iri">
<abbr title="Internationalized Resource Identifier">
IRI
<del class="diff-old">,
the
developer
can
instead
use
the
prefix
in
their
JSON-LD
markup.
</del>
</abbr>
</a>
<code>
<ins class="diff-chg">http://xmlns.com/foaf/0.1/name
</ins></code><ins class="diff-chg">
and
</ins><code><ins class="diff-chg">
foaf:Person
</ins></code><ins class="diff-chg">
expands
to
</ins><code><ins class="diff-chg">
http://xmlns.com/foaf/0.1/Person
</ins></code>.
</p>
<p>
<del class="diff-old">Terms
</del>
<a class="tref internalDFN" title="prefix" href="#dfn-prefix">
<ins class="diff-chg">Prefixes
</ins></a>
are
<del class="diff-old">interpreted
as
</del>
<ins class="diff-chg">expanded
when
the
form
of
the
value
is
a
</ins><a class="tref internalDFN" title="compact-iri" href="#dfn-compact-iri">
compact
<abbr title="Internationalized Resource Identifier">
IRI
</abbr>
</a>
<del class="diff-old">s
if
they
contain
at
least
one
colon
and
the
first
colon
is
not
followed
by
two
slashes
(
//
,
</del>
<ins class="diff-chg">represented
</ins>
as
<del class="diff-old">in
</del>
<ins class="diff-chg">a
</ins>
<code>
<del class="diff-old">http://example.com
</del>
<ins class="diff-chg">prefix:suffix
</ins>
</code>
<del class="diff-old">).
To
generate
the
full
IRI
,
</del>
<ins class="diff-chg">combination,
</ins>
the
<del class="diff-old">value
is
first
split
into
a
</del>
<em>
prefix
</em>
<ins class="diff-new">matches
a
</ins><a class="tref internalDFN" title="term" href="#dfn-term"><ins class="diff-new">
term
</ins></a><ins class="diff-new">
defined
within
the
</ins><a class="tref internalDFN" title="active-context" href="#dfn-active-context"><ins class="diff-new">
active
context
</ins></a>,
and
<ins class="diff-new">the
</ins>
<em>
suffix
</em>
<del class="diff-old">at
the
first
occurrence
of
a
colon
</del>
<ins class="diff-chg">does
not
begin
with
two
slashes
</ins>
(
<del class="diff-old">:
</del>
<code>
<ins class="diff-chg">//
</ins>
</code>
).
<del class="diff-old">If
the
active
context
contains
a
term
mapping
for
prefix
,
an
</del>
<ins class="diff-chg">The
</ins><a class="tref internalDFN" title="compact-iri" href="#dfn-compact-iri"><ins class="diff-chg">
compact
</ins>
<abbr title="Internationalized Resource Identifier">
IRI
</abbr>
</a>
is
<del class="diff-old">generated
</del>
<ins class="diff-chg">expanded
</ins>
by
<del class="diff-old">prepending
</del>
<ins class="diff-chg">concatenating
</ins>
the
<a class="tref internalDFN" title="iri" href="#dfn-iri">
<abbr title="Internationalized Resource Identifier">
<ins class="diff-new">IRI
</ins></abbr></a>
mapped
<ins class="diff-new">to
the
</ins>
<em>
prefix
</em>
to
the
(possibly
empty)
<em>
suffix
<del class="diff-old">using
textual
concatenation.
</del>
</em>.
If
<del class="diff-old">no
</del>
<ins class="diff-chg">the
</ins><em>
prefix
<del class="diff-old">mapping
</del>
</em>
is
<del class="diff-old">defined,
</del>
<ins class="diff-chg">not
defined
in
the
</ins><a class="tref internalDFN" title="active-context" href="#dfn-active-context"><ins class="diff-chg">
active
context
</ins></a>,<ins class="diff-chg">
or
the
suffix
begins
with
two
slashes
(such
as
in
</ins><code><ins class="diff-chg">
http://example.com
</ins></code><ins class="diff-chg">
),
</ins>
the
value
is
interpreted
as
<del class="diff-old">an
</del>
<a class="tref internalDFN" title="absolute-iri" href="#dfn-absolute-iri">
absolute
<abbr title="Internationalized Resource Identifier">
IRI
</abbr>
<del class="diff-old">.
</del>
</a>
<ins class="diff-chg">instead.
</ins>
If
the
prefix
is
an
underscore
(
<code>
_
</code>
),
the
<del class="diff-old">IRI
remains
unchanged.
This
effectively
means
that
every
term
containing
a
colon
will
be
</del>
<ins class="diff-chg">value
is
</ins>
interpreted
<del class="diff-old">by
a
JSON-LD
processor
</del>
as
<del class="diff-old">an
IRI
.
Consider
the
following
example:
  {
  &quot;@context&quot;:
  {


  },
  &quot;@id&quot;: &quot;http://example.org/library&quot;,
  &quot;@type&quot;: ,
  :
  {
    &quot;@id&quot;: &quot;http://example.org/library/the-republic&quot;,
    &quot;@type&quot;: ,
    : &quot;Plato&quot;,
    : &quot;The Republic&quot;,
    :
    {
      &quot;@id&quot;: &quot;http://example.org/library/the-republic#introduction&quot;,
      &quot;@type&quot;: ,
      : &quot;An introductory chapter on The Republic.&quot;,
      : &quot;The Introduction&quot;
    }
  }
}
In
this
example,
two
different
vocabularies
</del>
<a class="tref internalDFN" title="blank-node-identifier" href="#dfn-blank-node-identifier">
<ins class="diff-chg">blank
node
identifier
</ins>
</a>
<del class="diff-old">are
referred
to
using
prefixes.
Those
prefixes
are
then
used
as
type
and
property
values
using
the
compact
IRI
prefix:suffix
notation.
</del>
<ins class="diff-chg">instead.
</ins>
</p>
<p>
It's
also
possible
to
use
compact
IRIs
within
the
context
as
shown
in
the
following
example:
</p>
<del class="diff-old">  {
</del>
  <div class="example"><div class="example-title"><span>Example 20</span>: Using vocabularies</div><pre class="example">{
  &quot;@context&quot;:
  {
    &quot;xsd&quot;: &quot;http://www.w3.org/2001/XMLSchema#&quot;,
<del class="diff-old">    &quot;foaf&quot;: &quot;http://xmlns.com/foaf/0.1/&quot;,
</del>
    <span class="diff">&quot;foaf&quot;: &quot;http://xmlns.com/foaf/0.1/&quot;</span>,
    <span class="diff">&quot;foaf:homepage&quot;</span>: { &quot;@type&quot;: &quot;@id&quot; },
    &quot;picture&quot;: { &quot;@id&quot;: <span class="diff">&quot;foaf:depiction&quot;</span>, &quot;@type&quot;: &quot;@id&quot; }
  },
  &quot;@id&quot;: &quot;http://me.markus-lanthaler.com/&quot;,
  &quot;@type&quot;: &quot;foaf:Person&quot;,
  &quot;foaf:name&quot;: &quot;Markus Lanthaler&quot;,
  &quot;foaf:homepage&quot;: &quot;http://www.markus-lanthaler.com/&quot;,
  &quot;picture&quot;: &quot;http://twitter.com/account/profile_image/markuslanthaler&quot;
}
</pre>
</div>
</div>
<div class="informative section" id="typed-values">
<h3>
<span class="secno">
<del class="diff-old">4.2
</del>
<ins class="diff-chg">6.4
</ins>
</span>
Typed
Values
</h3>
<p>
<em>
<ins class="diff-new">This
section
is
non-normative.
</ins></em></p>
<p>
A
value
with
an
associated
type,
also
known
as
a
<a class="tref internalDFN" title="typed-value" href="#dfn-typed-value">
typed
value
<del class="diff-old">,
</del>
</a>,
is
indicated
by
associating
a
value
with
an
<a class="tref internalDFN" title="iri" href="#dfn-iri">
<abbr title="Internationalized Resource Identifier">
IRI
</abbr>
</a>
which
indicates
the
value's
type.
Typed
values
may
be
expressed
in
JSON-LD
in
<del class="diff-old">two
</del>
<ins class="diff-chg">three
</ins>
ways:
</p>
<ol>
<li>
By
utilizing
the
<code>
@type
</code>
<a class="tref internalDFN" title="keyword" href="#dfn-keyword">
keyword
</a>
when
defining
a
<a class="tref internalDFN" title="term" href="#dfn-term">
term
</a>
within
a
<code>
@context
</code>
section.
</li>
<li>
By
utilizing
<del class="diff-old">the
expanded
form
for
specifying
objects.
</del>
<ins class="diff-chg">a
</ins><a class="tref internalDFN" title="value-object" href="#dfn-value-object"><ins class="diff-chg">
value
object
</ins></a>.</li><li><ins class="diff-chg">
By
using
a
native
JSON
type
such
as
</ins><a class="tref internalDFN" title="number" href="#dfn-number"><ins class="diff-chg">
number
</ins></a>,<a class="tref internalDFN" title="true" href="#dfn-true"><ins class="diff-chg">
true
</ins></a>,<ins class="diff-chg">
or
</ins><a class="tref internalDFN" title="false" href="#dfn-false"><ins class="diff-chg">
false
</ins></a>.
</li>
</ol>
<p>
The
first
example
uses
the
<code>
@type
</code>
keyword
to
associate
a
type
with
a
particular
<a class="tref internalDFN" title="term" href="#dfn-term">
term
</a>
in
the
<code>
@context
</code>:
</p>
<del class="diff-old">{
</del>
<div class="example"><div class="example-title"><span>Example 21</span>: Expanded term definition with type coercion</div><pre class="example">{
  <span class="diff">&quot;@context&quot;:
  {
    &quot;modified&quot;:
    {
      &quot;@id&quot;: &quot;http://purl.org/dc/terms/modified&quot;,
      &quot;@type&quot;: &quot;http://www.w3.org/2001/XMLSchema#dateTime&quot;
    }
  },</span>
...
<ins class="diff-new">  &quot;@id&quot;: &quot;http://example.com/docs/1&quot;,
</ins>
  &quot;modified&quot;: &quot;2010-05-29T14:17:39+02:00&quot;,
...
}
</pre>
</div>
<p>
The
<em>
modified
</em>
key's
value
above
is
automatically
type
coerced
to
a
<del class="diff-old">datetime
</del>
<em>
<ins class="diff-chg">dateTime
</ins></em>
value
because
of
the
information
specified
in
the
<code>
@context
</code>.
<ins class="diff-new">A
JSON-LD
processor
will
interpret
the
example
above
as
follows:
</ins>
</p>
<table class="example">
<thead>
<tr>
<th>
<ins class="diff-new">Subject
</ins></th><th><ins class="diff-new">
Property
</ins></th><th><ins class="diff-new">
Value
</ins></th><th><ins class="diff-new">
Value
Type
</ins></th></tr></thead><tbody><tr><td><ins class="diff-new">
http://example.com/docs/1
</ins></td><td><ins class="diff-new">
http://purl.org/dc/terms/modified
</ins></td><td><ins class="diff-new">
2010-05-29T14:17:39+02:00
</ins></td><td><ins class="diff-new">
http://www.w3.org/2001/XMLSchema#dateTime
</ins></td></tr></tbody></table>
<p>
The
second
example
uses
the
expanded
form
of
setting
the
type
information
in
the
body
of
a
JSON-LD
document:
</p>
<del class="diff-old">{
</del>
<div class="example"><div class="example-title"><span>Example 22</span>: Expanded value with type</div><pre class="example">{
  &quot;@context&quot;:
  {
    &quot;modified&quot;:
    {
      &quot;@id&quot;: &quot;http://purl.org/dc/terms/modified&quot;
    }
  },
...
  &quot;modified&quot;:
  <span class="diff">{
    &quot;@value&quot;: &quot;2010-05-29T14:17:39+02:00&quot;,
    &quot;@type&quot;: &quot;http://www.w3.org/2001/XMLSchema#dateTime&quot;
  }</span>
...
}
</pre>
</div>
<p>
Both
examples
above
would
generate
<del class="diff-old">an
object
with
</del>
the
value
<del class="diff-old">of
</del>
<code>
2010-05-29T14:17:39+02:00
</code>
<del class="diff-old">and
</del>
<ins class="diff-chg">with
</ins>
the
type
<del class="diff-old">of
</del>
<code>
http://www.w3.org/2001/XMLSchema#dateTime
</code>.
Note
that
it
is
also
possible
to
use
a
<a class="tref internalDFN" title="term" href="#dfn-term">
term
</a>
or
a
<a class="tref internalDFN" title="compact-iri" href="#dfn-compact-iri">
compact
<abbr title="Internationalized Resource Identifier">
IRI
</abbr>
</a>
to
express
the
value
of
a
type.
</p>
<del class="diff-old">Note
</del>
<p>
The
<code>
@type
</code>
<a class="tref internalDFN" title="keyword" href="#dfn-keyword">
keyword
</a>
is
also
used
to
associate
a
type
with
a
<del class="diff-old">subject
</del>
<a class="tref internalDFN" title="node" href="#dfn-node">
<ins class="diff-chg">node
</ins>
</a>.
<del class="diff-old">Although
the
same
keyword
is
used
in
both
places,
the
</del>
<ins class="diff-chg">The
</ins>
concept
of
<del class="diff-old">an
object
</del>
<ins class="diff-chg">a
</ins><a class="tref internalDFN" title="node-type" href="#dfn-node-type"><ins class="diff-chg">
node
</ins>
type
</a>
and
a
<a class="tref internalDFN" title="value-type" href="#dfn-value-type">
value
type
</a>
are
different.
<del class="diff-old">This
</del>
</p>
<p>
<ins class="diff-chg">Generally
speaking,
a
</ins><dfn title="node-type" id="dfn-node-type"><ins class="diff-chg">
node
type
</ins></dfn><ins class="diff-chg">
specifies
the
type
of
thing
that
</ins>
is
<del class="diff-old">similar
to
object-oriented
programming
languages
where
both
scalar
and
structured
types
</del>
<ins class="diff-chg">being
described,
like
a
person,
place,
event,
or
web
page.
A
</ins><dfn title="value-type" id="dfn-value-type"><ins class="diff-chg">
value
type
</ins></dfn><ins class="diff-chg">
specifies
the
data
type
of
a
particular
value,
such
as
an
integer,
a
floating
point
number,
or
a
date.
</ins></p><div class="example"><div class="example-title"><span>Example 23</span>: Example demonstrating the context-sensitivity for @type</div><pre class="example">{<ins class="diff-chg">
...
  &quot;@id&quot;: &quot;http://example.org/posts#TripToWestVirginia&quot;,
</ins>  <span class="diff">&quot;@type&quot;: &quot;http://schema.org/BlogPosting&quot;</span>,   &lt;- This is a node type<ins class="diff-chg">
  &quot;modified&quot;:
  {
    &quot;@value&quot;: &quot;2010-05-29T14:17:39+02:00&quot;,
</ins>    <span class="diff">&quot;@type&quot;: &quot;http://www.w3.org/2001/XMLSchema#dateTime&quot;</span> &lt;- This is a value type<ins class="diff-chg">
  }
...
}
</ins></pre></div><p><ins class="diff-chg">
The
first
</ins>
use
<ins class="diff-new">of
</ins><code><ins class="diff-new">
@type
</ins></code><ins class="diff-new">
associates
a
</ins><a class="tref internalDFN" title="node-type" href="#dfn-node-type"><ins class="diff-new">
node
type
</ins></a><ins class="diff-new">
(
</ins><code><ins class="diff-new">
http://schema.org/BlogPosting
</ins></code><ins class="diff-new">
)
with
</ins>
the
<del class="diff-old">same
class
inheritance
mechanism,
even
though
scalar
types
</del>
<a class="tref internalDFN" title="node" href="#dfn-node">
<ins class="diff-chg">node
</ins></a>,<ins class="diff-chg">
which
is
expressed
using
the
</ins><code><ins class="diff-chg">
@id
</ins></code><a class="tref internalDFN" title="keyword" href="#dfn-keyword"><ins class="diff-chg">
keyword
</ins></a>.<ins class="diff-chg">
The
second
use
of
</ins><code><ins class="diff-chg">
@type
</ins></code><ins class="diff-chg">
associates
a
</ins><a class="tref internalDFN" title="value-type" href="#dfn-value-type"><ins class="diff-chg">
value
type
</ins></a><ins class="diff-chg">
(
</ins><code><ins class="diff-chg">
http://www.w3.org/2001/XMLSchema#dateTime
</ins></code><ins class="diff-chg">
)
with
the
value
expressed
using
the
</ins><code><ins class="diff-chg">
@value
</ins></code><a class="tref internalDFN" title="keyword" href="#dfn-keyword"><ins class="diff-chg">
keyword
</ins></a>.<ins class="diff-chg">
As
a
general
rule,
when
</ins><code><ins class="diff-chg">
@value
</ins></code>
and
<del class="diff-old">structured
types
</del>
<code>
<ins class="diff-chg">@type
</ins></code>
are
<del class="diff-old">inherently
different.
</del>
<ins class="diff-chg">used
in
the
same
</ins><a class="tref internalDFN" title="json-object" href="#dfn-json-object"><ins class="diff-chg">
JSON
object
</ins></a>,<ins class="diff-chg">
the
</ins><code><ins class="diff-chg">
@type
</ins></code><a class="tref internalDFN" title="keyword" href="#dfn-keyword"><ins class="diff-chg">
keyword
</ins></a><ins class="diff-chg">
is
expressing
a
</ins><a class="tref internalDFN" title="value-type" href="#dfn-value-type"><ins class="diff-chg">
value
type
</ins></a>.<ins class="diff-chg">
Otherwise,
the
</ins><code><ins class="diff-chg">
@type
</ins></code><a class="tref internalDFN" title="keyword" href="#dfn-keyword"><ins class="diff-chg">
keyword
</ins></a><ins class="diff-chg">
is
expressing
a
</ins><a class="tref internalDFN" title="node-type" href="#dfn-node-type"><ins class="diff-chg">
node
type
</ins></a>.<ins class="diff-chg">
The
example
above
expresses
the
following
data:
</ins>
</p>
<table class="example">
<thead>
<tr>
<th>
<ins class="diff-new">Subject
</ins></th><th><ins class="diff-new">
Property
</ins></th><th><ins class="diff-new">
Value
</ins></th><th><ins class="diff-new">
Value
Type
</ins></th></tr></thead><tbody><tr><td><ins class="diff-new">
http://example.org/posts#TripToWestVirginia
</ins></td><td><ins class="diff-new">
http://www.w3.org/1999/02/22-rdf-syntax-ns#type
</ins></td><td><ins class="diff-new">
http://schema.org/BlogPosting
</ins></td><td style="text-align:center;"><ins class="diff-new">
-
</ins></td></tr><tr><td><ins class="diff-new">
http://example.org/posts#TripToWestVirginia
</ins></td><td><ins class="diff-new">
http://purl.org/dc/terms/modified
</ins></td><td><ins class="diff-new">
2010-05-29T14:17:39+02:00
</ins></td><td><ins class="diff-new">
http://www.w3.org/2001/XMLSchema#dateTime
</ins></td></tr></tbody></table>
</div>
<div class="informative section" id="type-coercion">
<h3>
<span class="secno">
<del class="diff-old">4.3
</del>
<ins class="diff-chg">6.5
</ins>
</span>
<del class="diff-old">External
Contexts
</del>
<ins class="diff-chg">Type
Coercion
</ins>
</h3>
<p>
<del class="diff-old">Authors
may
choose
</del>
<em>
<ins class="diff-chg">This
section
is
non-normative.
</ins></em></p><p><ins class="diff-chg">
JSON-LD
supports
the
coercion
of
values
</ins>
to
<del class="diff-old">declare
</del>
<ins class="diff-chg">particular
data
types.
Type
</ins><dfn title="coercion" id="dfn-coercion"><ins class="diff-chg">
coercion
</ins></dfn><ins class="diff-chg">
allows
someone
deploying
</ins>
JSON-LD
<del class="diff-old">context
s
in
external
documents
</del>
to
<del class="diff-old">promote
re-use
</del>
<ins class="diff-chg">coerce
the
incoming
or
outgoing
values
to
the
proper
data
type
based
on
a
mapping
</ins>
of
<del class="diff-old">contexts
as
well
as
reduce
</del>
<ins class="diff-chg">data
type
</ins><a class="tref internalDFN" title="iri" href="#dfn-iri"><ins class="diff-chg">
IRIs
</ins></a><ins class="diff-chg">
to
</ins><a class="tref internalDFN" title="term" href="#dfn-term"><ins class="diff-chg">
terms
</ins></a>.<ins class="diff-chg">
Using
type
coercion,
value
representation
is
preserved
without
requiring
</ins>
the
<del class="diff-old">size
</del>
<ins class="diff-chg">data
type
to
be
specified
with
each
piece
</ins>
of
<del class="diff-old">JSON-LD
documents.
</del>
<ins class="diff-chg">data.
</ins>
</p>
<p>
<del class="diff-old">In
order
to
use
an
external
context,
</del>
<ins class="diff-chg">Type
coercion
is
specified
within
</ins>
an
<del class="diff-old">author
must
specify
</del>
<a class="tref internalDFN" title="expanded-term-definition" href="#dfn-expanded-term-definition">
<ins class="diff-chg">expanded
term
definition
</ins></a><ins class="diff-chg">
using
the
</ins><code><ins class="diff-chg">
@type
</ins></code><ins class="diff-chg">
key.
The
value
of
this
key
expands
to
</ins>
an
<a class="tref internalDFN" title="iri" href="#dfn-iri">
<abbr title="Internationalized Resource Identifier">
IRI
</abbr>
</a>.
<ins class="diff-new">Alternatively,
the
</ins><a class="tref internalDFN" title="keyword" href="#dfn-keyword"><ins class="diff-new">
keywords
</ins>
</a>
<code>
<ins class="diff-new">@id
</ins></code><ins class="diff-new">
or
</ins><code><ins class="diff-new">
@vocab
</ins></code><ins class="diff-new">
may
be
used
as
value
</ins>
to
<ins class="diff-new">indicate
that
within
the
body
of
</ins>
a
<del class="diff-old">valid
</del>
JSON-LD
<del class="diff-old">document.
The
referenced
document
must
have
</del>
<ins class="diff-chg">document,
</ins>
a
<del class="diff-old">top-level
subject
definition
.
The
</del>
<a class="tref internalDFN" title="string" href="#dfn-string">
<ins class="diff-chg">string
</ins></a>
value
of
<del class="diff-old">any
</del>
<ins class="diff-chg">a
</ins><a class="tref internalDFN" title="term" href="#dfn-term"><ins class="diff-chg">
term
</ins></a><ins class="diff-chg">
coerced
to
</ins>
<code>
<del class="diff-old">@context
</del>
<ins class="diff-chg">@id
</ins></code><ins class="diff-chg">
or
</ins><code><ins class="diff-chg">
@vocab
</ins>
</code>
<del class="diff-old">key
within
that
object
</del>
is
<del class="diff-old">substituted
for
the
</del>
<ins class="diff-chg">to
be
interpreted
as
an
</ins><a class="tref internalDFN" title="iri" href="#dfn-iri">
<abbr title="Internationalized Resource Identifier">
IRI
</abbr>
<del class="diff-old">within
</del>
</a>.
<ins class="diff-chg">The
difference
between
</ins><code><ins class="diff-chg">
@id
</ins></code><ins class="diff-chg">
and
</ins><code><ins class="diff-chg">
@vocab
</ins></code><ins class="diff-chg">
is
how
values
are
expanded
to
</ins><a class="tref internalDFN" title="absolute-iri" href="#dfn-absolute-iri"><ins class="diff-chg">
absolute
IRIs
</ins></a>.<code><ins class="diff-chg">
@vocab
</ins></code><ins class="diff-chg">
first
tries
to
expand
</ins>
the
<del class="diff-old">referencing
document
</del>
<ins class="diff-chg">value
by
interpreting
it
as
</ins><a class="tref internalDFN" title="term" href="#dfn-term"><ins class="diff-chg">
term
</ins></a>.<ins class="diff-chg">
If
no
matching
</ins><a class="tref internalDFN" title="term" href="#dfn-term"><ins class="diff-chg">
term
</ins></a><ins class="diff-chg">
is
found
in
the
</ins><a class="tref internalDFN" title="active-context" href="#dfn-active-context"><ins class="diff-chg">
active
context
</ins></a>,<ins class="diff-chg">
it
tries
</ins>
to
<del class="diff-old">have
</del>
<ins class="diff-chg">expand
it
as
</ins><a class="tref internalDFN" title="compact-iri" href="#dfn-compact-iri"><ins class="diff-chg">
compact
</ins><abbr title="Internationalized Resource Identifier"><ins class="diff-chg">
IRI
</ins></abbr></a><ins class="diff-chg">
or
</ins><a class="tref internalDFN" title="absolute-iri" href="#dfn-absolute-iri"><ins class="diff-chg">
absolute
</ins><abbr title="Internationalized Resource Identifier"><ins class="diff-chg">
IRI
</ins></abbr></a><ins class="diff-chg">
if
there's
a
colon
in
</ins>
the
<del class="diff-old">same
effect
</del>
<ins class="diff-chg">value;
otherwise,
it
will
expand
the
value
using
the
</ins><a class="tref internalDFN" title="active-context" href="#dfn-active-context"><ins class="diff-chg">
active
context's
</ins></a><ins class="diff-chg">
vocabulary
mapping,
if
present,
or
by
interpreting
it
as
</ins><a class="tref internalDFN" title="relative-iri" href="#dfn-relative-iri"><ins class="diff-chg">
relative
</ins><abbr title="Internationalized Resource Identifier"><ins class="diff-chg">
IRI
</ins></abbr></a>.<ins class="diff-chg">
Values
coerced
to
</ins><code><ins class="diff-chg">
@id
</ins></code><ins class="diff-chg">
in
contrast
are
expanded
</ins>
as
<a class="tref internalDFN" title="compact-iri" href="#dfn-compact-iri">
<ins class="diff-new">compact
</ins><abbr title="Internationalized Resource Identifier"><ins class="diff-new">
IRI
</ins></abbr></a><ins class="diff-new">
or
</ins><a class="tref internalDFN" title="absolute-iri" href="#dfn-absolute-iri"><ins class="diff-new">
absolute
</ins><abbr title="Internationalized Resource Identifier"><ins class="diff-new">
IRI
</ins></abbr></a>
if
<ins class="diff-new">a
colon
is
present;
otherwise,
they
are
interpreted
as
</ins><a class="tref internalDFN" title="relative-iri" href="#dfn-relative-iri"><ins class="diff-new">
relative
</ins><abbr title="Internationalized Resource Identifier"><ins class="diff-new">
IRI
</ins></abbr></a>.</p><p><a class="tref internalDFN" title="term" href="#dfn-term"><ins class="diff-new">
Terms
</ins></a><ins class="diff-new">
or
</ins><a class="tref internalDFN" title="compact-iri" href="#dfn-compact-iri"><ins class="diff-new">
compact
IRIs
</ins></a><ins class="diff-new">
used
as
</ins>
the
value
<del class="diff-old">were
specified
inline
</del>
<ins class="diff-chg">of
a
</ins><code><ins class="diff-chg">
@type
</ins></code><ins class="diff-chg">
key
may
be
defined
</ins>
within
the
<del class="diff-old">referencing
document.
</del>
<ins class="diff-chg">same
context.
This
means
that
one
may
specify
a
</ins><a class="tref internalDFN" title="term" href="#dfn-term"><ins class="diff-chg">
term
</ins></a><ins class="diff-chg">
like
</ins><code><ins class="diff-chg">
xsd
</ins></code><ins class="diff-chg">
and
then
use
</ins><code><ins class="diff-chg">
xsd:integer
</ins></code><ins class="diff-chg">
within
the
same
context
definition.
</ins>
</p>
<p>
The
<del class="diff-old">following
</del>
example
<ins class="diff-new">below
</ins>
demonstrates
<del class="diff-old">the
use
of
an
external
context:
</del>
<ins class="diff-chg">how
a
JSON-LD
author
can
coerce
values
to
</ins><a class="tref internalDFN" title="typed-value" href="#dfn-typed-value"><ins class="diff-chg">
typed
values
</ins></a><ins class="diff-chg">
and
</ins><a class="tref internalDFN" title="iri" href="#dfn-iri"><ins class="diff-chg">
IRIs
</ins></a>.
</p>
<del class="diff-old">{
  ,
  &quot;name&quot;: &quot;Manu Sporny&quot;,
  &quot;homepage&quot;: &quot;http://manu.sporny.org/&quot;,
  &quot;depiction&quot;: &quot;http://twitter.com/account/profile_image/manusporny&quot;
</del>
<div class="example"><div class="example-title"><span>Example 24</span>: Expanded term definition with types</div><pre class="example">{
<ins class="diff-chg">  &quot;@context&quot;:
  {
    &quot;xsd&quot;: &quot;http://www.w3.org/2001/XMLSchema#&quot;,
    &quot;name&quot;: &quot;http://xmlns.com/foaf/0.1/name&quot;,
    &quot;age&quot;:
</ins>    <span class="diff">{<ins class="diff-chg">
      &quot;@id&quot;: &quot;http://xmlns.com/foaf/0.1/age&quot;,
      &quot;@type&quot;: &quot;xsd:integer&quot;
    }</span>,
    &quot;homepage&quot;:
</ins>    <span class="diff">{<ins class="diff-chg">
      &quot;@id&quot;: &quot;http://xmlns.com/foaf/0.1/homepage&quot;,
      &quot;@type&quot;: &quot;@id&quot;
    }</span>
  },
  &quot;@id&quot;: &quot;http://example.com/people#john&quot;,
  &quot;name&quot;: &quot;John Smith&quot;,
  &quot;age&quot;: <span class="diff">&quot;41&quot;</span>,
  &quot;homepage&quot;:
</ins>  <span class="diff">[<ins class="diff-chg">
    &quot;http://personal.example.org/&quot;,
    &quot;http://work.example.com/jsmith/&quot;
  ]</span>
</ins>
}
</pre>
</div>
<p>
<del class="diff-old">Authors
</del>
<ins class="diff-chg">The
example
shown
above
would
generate
the
following
data.
</ins></p><table class="example"><thead><tr><th><ins class="diff-chg">
Subject
</ins></th><th><ins class="diff-chg">
Property
</ins></th><th><ins class="diff-chg">
Value
</ins></th><th><ins class="diff-chg">
Value
Type
</ins></th></tr></thead><tbody><tr><td><ins class="diff-chg">
http://example.com/people#john
</ins></td><td><ins class="diff-chg">
http://xmlns.com/foaf/0.1/name
</ins></td><td><ins class="diff-chg">
John
Smith
</ins></td><td></td></tr><tr><td><ins class="diff-chg">
http://example.com/people#john
</ins></td><td><ins class="diff-chg">
http://xmlns.com/foaf/0.1/age
</ins></td><td><ins class="diff-chg">
41
</ins></td><td><ins class="diff-chg">
http://www.w3.org/2001/XMLSchema#integer
</ins></td></tr><tr><td rowspan="2"><ins class="diff-chg">
http://example.com/people#john
</ins></td><td rowspan="2"><ins class="diff-chg">
http://xmlns.com/foaf/0.1/homepage
</ins></td><td><ins class="diff-chg">
http://personal.example.org/
</ins></td><td><a class="tref internalDFN" title="iri" href="#dfn-iri"><abbr title="Internationalized Resource Identifier"><ins class="diff-chg">
IRI
</ins></abbr></a></td></tr><tr><td><ins class="diff-chg">
http://work.example.com/jsmith/
</ins></td><td><a class="tref internalDFN" title="iri" href="#dfn-iri"><abbr title="Internationalized Resource Identifier"><ins class="diff-chg">
IRI
</ins></abbr></a></td></tr></tbody></table><p><ins class="diff-chg">
Terms
</ins>
may
also
<del class="diff-old">import
multiple
contexts
</del>
<ins class="diff-chg">be
defined
using
</ins><a class="tref internalDFN" title="absolute-iri" href="#dfn-absolute-iri"><ins class="diff-chg">
absolute
IRIs
</ins></a>
or
<a class="tref internalDFN" title="compact-iri" href="#dfn-compact-iri">
<ins class="diff-new">compact
IRIs
</ins></a>.<ins class="diff-new">
This
allows
coercion
rules
to
be
applied
to
keys
which
are
not
represented
as
</ins>
a
<del class="diff-old">combination
of
external
and
local
contexts
by
specifying
a
list
of
contexts:
</del>
<ins class="diff-chg">simple
</ins><a class="tref internalDFN" title="term" href="#dfn-term"><ins class="diff-chg">
term
</ins></a>.<ins class="diff-chg">
For
example:
</ins>
</p>
<del class="diff-old">{
  &quot;@context&quot;:
  [
    &quot;http://json-ld.org/contexts/person.jsonld&quot;,
</del>
<div class="example"><div class="example-title"><span>Example 25</span>: Term definitions using compact and absolute IRIs</div><pre class="example">{
<ins class="diff-chg">  &quot;@context&quot;:
  {
    &quot;foaf&quot;: &quot;http://xmlns.com/foaf/0.1/&quot;,
    &quot;<span class="diff">foaf:age</span>&quot;:
</ins>
    {
<del class="diff-old">      &quot;foaf&quot;: &quot;http://xmlns.com/foaf/0.1/&quot;
</del>
      <span class="diff">&quot;@id&quot;: &quot;http://xmlns.com/foaf/0.1/age&quot;</span>,
<ins class="diff-chg">      &quot;@type&quot;: &quot;xsd:integer&quot;
</ins>
    },
<del class="diff-old">    &quot;http://json-ld.org/contexts/event.jsonld&quot;
  ],
  &quot;name&quot;: &quot;Manu Sporny&quot;,
  &quot;homepage&quot;: &quot;http://manu.sporny.org/&quot;,
  &quot;foaf:depiction&quot;: &quot;http://twitter.com/account/profile_image/manusporny&quot;,
  &quot;celebrates&quot;:
  {
    &quot;@type&quot;: &quot;Event&quot;,
    &quot;description&quot;: &quot;International Talk Like a Pirate Day&quot;,
    &quot;date&quot;: &quot;R/2011-09-19&quot;
  }
</del>
<ins class="diff-chg">    &quot;<span class="diff">http://xmlns.com/foaf/0.1/homepage</span>&quot;:
    {
      &quot;@type&quot;: &quot;@id&quot;
    }
  },
  &quot;foaf:name&quot;: &quot;John Smith&quot;,
  &quot;<span class="diff">foaf:age</span>&quot;: &quot;41&quot;,
  &quot;<span class="diff">http://xmlns.com/foaf/0.1/homepage</span>&quot;:
  [
    &quot;http://personal.example.org/&quot;,
    &quot;http://work.example.com/jsmith/&quot;
  ]
</ins>
}
</pre>
</div>
<p>
<del class="diff-old">Each
context
</del>
<ins class="diff-chg">In
this
case
the
</ins><code><ins class="diff-chg">
@id
</ins></code><ins class="diff-chg">
definition
</ins>
in
<del class="diff-old">a
list
will
be
evaluated
in-order.
Duplicate
mappings
among
</del>
the
<del class="diff-old">context
</del>
<ins class="diff-chg">term
definition
is
optional.
If
it
does
exist,
the
</ins><a class="tref internalDFN" title="compact-iri" href="#dfn-compact-iri"><ins class="diff-chg">
compact
</ins><abbr title="Internationalized Resource Identifier"><ins class="diff-chg">
IRI
</ins></abbr>
</a>
<del class="diff-old">s
must
</del>
<ins class="diff-chg">or
</ins><a class="tref internalDFN" title="iri" href="#dfn-iri"><abbr title="Internationalized Resource Identifier"><ins class="diff-chg">
IRI
</ins></abbr></a><ins class="diff-chg">
representing
the
term
will
always
</ins>
be
<del class="diff-old">overwritten
on
a
last-defined-overrides
basis.
The
context
list
must
contain
either
de-referenceable
</del>
<ins class="diff-chg">expanded
to
</ins>
<a class="tref internalDFN" title="iri" href="#dfn-iri">
<abbr title="Internationalized Resource Identifier">
IRI
</abbr>
</a>
<del class="diff-old">s
</del>
<ins class="diff-chg">defined
by
the
</ins><code><ins class="diff-chg">
@id
</ins></code><ins class="diff-chg">
key—regardless
of
whether
a
prefix
is
defined
</ins>
or
<del class="diff-old">JSON
object
s
</del>
<ins class="diff-chg">not.
</ins></p><p><ins class="diff-chg">
Type
coercion
is
always
performed
using
the
unexpanded
value
of
the
key.
In
the
example
above,
</ins>
that
<del class="diff-old">conform
to
</del>
<ins class="diff-chg">means
that
type
coercion
is
done
looking
for
</ins><code><ins class="diff-chg">
foaf:age
</ins></code><ins class="diff-chg">
in
</ins>
the
<a class="tref internalDFN" title="active-context" href="#dfn-active-context">
<ins class="diff-chg">active
</ins>
context
</a>
<del class="diff-old">syntax
</del>
<ins class="diff-chg">and
not
for
the
corresponding,
expanded
</ins><a class="tref internalDFN" title="iri" href="#dfn-iri"><abbr title="Internationalized Resource Identifier"><ins class="diff-chg">
IRI
</ins></abbr></a><code><ins class="diff-chg">
http://xmlns.com/foaf/0.1/age
</ins></code>.</p><div class="note"><div class="note-title"><span><ins class="diff-chg">
Note
</ins></span></div><p class=""><ins class="diff-chg">
Keys
in
the
context
are
treated
</ins>
as
<del class="diff-old">described
</del>
<a class="tref internalDFN" title="term" href="#dfn-term">
<ins class="diff-chg">terms
</ins></a><ins class="diff-chg">
for
the
purpose
of
expansion
and
value
coercion.
At
times,
this
may
result
</ins>
in
<ins class="diff-new">multiple
representations
for
the
same
expanded
</ins><abbr title="Internationalized Resource Identifier"><ins class="diff-new">
IRI
</ins></abbr>.<ins class="diff-new">
For
example,
one
could
specify
that
</ins><code><ins class="diff-new">
dog
</ins></code><ins class="diff-new">
and
</ins><code><ins class="diff-new">
cat
</ins></code><ins class="diff-new">
both
expanded
to
</ins><code><ins class="diff-new">
http://example.com/vocab#animal
</ins></code>.<ins class="diff-new">
Doing
this
could
be
useful
for
establishing
different
type
coercion
or
language
specification
rules.
It
also
allows
a
</ins><a class="tref internalDFN" title="compact-iri" href="#dfn-compact-iri"><ins class="diff-new">
compact
</ins><abbr title="Internationalized Resource Identifier"><ins class="diff-new">
IRI
</ins></abbr></a><ins class="diff-new">
(or
even
an
absolute
</ins><a class="tref internalDFN" title="iri" href="#dfn-iri"><abbr title="Internationalized Resource Identifier"><ins class="diff-new">
IRI
</ins></abbr></a><ins class="diff-new">
)
to
be
defined
as
something
else
entirely.
For
example,
one
could
specify
that
the
</ins><a class="tref internalDFN" title="term" href="#dfn-term"><ins class="diff-new">
term
</ins></a><code><ins class="diff-new">
http://example.org/zoo
</ins></code><ins class="diff-new">
should
expand
to
</ins><code><ins class="diff-new">
http://example.org/river
</ins></code>,<ins class="diff-new">
but
</ins>
this
<ins class="diff-new">usage
is
discouraged
because
it
would
lead
to
a
great
deal
of
confusion
among
developers
attempting
to
understand
the
JSON-LD
</ins>
document.
</p>
</div>
</div>
<div class="informative section" id="embedding">
<h3>
<span class="secno">
<ins class="diff-new">6.6
</ins></span><ins class="diff-new">
Embedding
</ins></h3>
<p>
<del class="diff-old">An
</del>
<em>
<ins class="diff-chg">This
section
is
non-normative.
</ins></em></p><p><dfn title="embedding" id="dfn-embedding"><ins class="diff-chg">
Embedding
</ins></dfn><ins class="diff-chg">
is
a
JSON-LD
feature
that
allows
an
</ins>
author
<ins class="diff-chg">to
use
</ins><a class="tref internalDFN" title="node-object" href="#dfn-node-object"><ins class="diff-chg">
node
objects
</ins></a><ins class="diff-chg">
as
</ins><a class="tref internalDFN" title="property" href="#dfn-property"><ins class="diff-chg">
property
</ins></a><ins class="diff-chg">
values.
This
is
a
commonly
used
mechanism
for
creating
a
parent-child
relationship
between
two
</ins><a class="tref internalDFN" title="node" href="#dfn-node"><ins class="diff-chg">
nodes
</ins></a>.</p><p><ins class="diff-chg">
The
example
shows
two
nodes
related
by
a
property
from
the
first
node:
</ins></p>  <div class="example"><div class="example-title"><span>Example 26</span>: Embedding a node object as property value of another node object</div><pre class="example">{<ins class="diff-chg">
...
  &quot;name&quot;: &quot;Manu Sporny&quot;,
  &quot;<span class="diff">knows</span>&quot;:
  {
    &quot;<span class="diff">@type</span>&quot;: &quot;<span class="diff">Person</span>&quot;,
    &quot;<span class="diff">name</span>&quot;: &quot;<span class="diff">Gregg Kellogg</span>&quot;,
  }
...
}
</ins></pre></div><p><ins class="diff-chg">
A
</ins><a class="tref internalDFN" title="node-object" href="#dfn-node-object"><ins class="diff-chg">
node
object
</ins></a>,<ins class="diff-chg">
like
the
one
used
above,
</ins>
may
<ins class="diff-new">be
used
in
any
value
position
in
the
body
of
a
JSON-LD
document.
</ins></p></div><div class="informative section" id="advanced-context-usage"><h3><span class="secno"><ins class="diff-new">
6.7
</ins></span><ins class="diff-new">
Advanced
Context
Usage
</ins></h3><p><em><ins class="diff-new">
This
section
is
non-normative.
</ins>
</em>
<del class="diff-old">nest
contexts
within
subject
definitions
,
with
</del>
</p>
<p>
<ins class="diff-chg">Section
</ins><a href="#the-context" class="sec-ref"><span class="secno"><ins class="diff-chg">
5.1
</ins></span><span class="sec-title"><ins class="diff-chg">
The
Context
</ins></span></a><ins class="diff-chg">
introduced
</ins>
the
<ins class="diff-new">basics
of
what
makes
JSON-LD
work.
This
section
expands
on
the
basic
principles
of
the
</ins><a class="tref internalDFN" title="context" href="#dfn-context"><ins class="diff-new">
context
</ins></a><ins class="diff-new">
and
demonstrates
how
</ins>
more
<del class="diff-old">deeply
nested
</del>
<ins class="diff-chg">advanced
use
cases
can
be
achieved
using
JSON-LD.
</ins></p><p><ins class="diff-chg">
In
general,
</ins>
contexts
<del class="diff-old">overriding
the
values
</del>
<ins class="diff-chg">may
be
used
at
any
time
a
</ins><a class="tref internalDFN" title="json-object" href="#dfn-json-object"><ins class="diff-chg">
JSON
object
</ins></a><ins class="diff-chg">
is
defined.
The
only
time
that
one
cannot
express
a
context
is
inside
a
context
definition
itself.
For
example,
a
</ins><a class="tref internalDFN" title="json-ld-document" href="#dfn-json-ld-document"><ins class="diff-chg">
JSON-LD
document
</ins></a><ins class="diff-chg">
may
use
more
than
one
context
at
different
points
</ins>
in
<del class="diff-old">previously
defined
contexts:
</del>
<ins class="diff-chg">a
document:
</ins>
</p>
<del class="diff-old">{
</del>
  <div class="example"><div class="example-title"><span>Example 27</span>: Using multiple contexts</div><pre class="example">[
<ins class="diff-chg">  {
</ins>    <span class="diff">&quot;@context&quot;: &quot;http://example.org/contexts/person.jsonld&quot;,</span><ins class="diff-chg">
    &quot;name&quot;: &quot;Manu Sporny&quot;,
    &quot;homepage&quot;: &quot;http://manu.sporny.org/&quot;,
    &quot;depiction&quot;: &quot;http://twitter.com/account/profile_image/manusporny&quot;
  },
  {
</ins>    <span class="diff">&quot;@context&quot;: &quot;http://example.org/contexts/place.jsonld&quot;,</span><ins class="diff-chg">
    &quot;name&quot;: &quot;The Empire State Building&quot;,
    &quot;description&quot;: &quot;The Empire State Building is a 102-story landmark in New York City.&quot;,
    &quot;geo&quot;: {
      &quot;latitude&quot;: &quot;40.75&quot;,
      &quot;longitude&quot;: &quot;73.98&quot;
    }
  }
]
</ins></pre></div><p><ins class="diff-chg">
Duplicate
context
</ins><a class="tref internalDFN" title="term" href="#dfn-term"><ins class="diff-chg">
terms
</ins></a><ins class="diff-chg">
are
overridden
using
a
most-recently-defined-wins
mechanism.
</ins></p>  <div class="example"><div class="example-title"><span>Example 28</span>: Scoped contexts within node objects</div><pre class="example">{
  <span class="diff">&quot;@context&quot;:
  {
<del class="diff-old">    &quot;name&quot;: &quot;http://example.com/person#name&quot;,
</del>
<ins class="diff-chg">    &quot;name&quot;: &quot;http://example.com/person#name,
</ins>
    &quot;details&quot;: &quot;http://example.com/person#details&quot;
<del class="diff-old">  },
</del>
<ins class="diff-chg">  }&quot;</span>,
</ins>
  &quot;<span class="diff">name</span>&quot;: &quot;Markus Lanthaler&quot;,
  ...
  &quot;details&quot;:
  {
<del class="diff-old">    &quot;@context&quot;: {
</del>
    <span class="diff">&quot;@context&quot;:
<ins class="diff-chg">    {
</ins>
      &quot;name&quot;: &quot;http://example.com/organization#name&quot;
<del class="diff-old">    },
</del>
<ins class="diff-chg">    }</span>,
</ins>
    &quot;<span class="diff">name</span>&quot;: &quot;Graz University of Technology&quot;
  }
}
</pre>
</div>
<p>
In
the
example
above,
the
<code>
name
</code>
<del class="diff-old">prefix
</del>
<a class="tref internalDFN" title="term" href="#dfn-term">
<ins class="diff-chg">term
</ins></a>
is
overridden
in
the
more
deeply
nested
<code>
details
</code>
structure.
Note
that
this
is
rarely
a
good
authoring
practice
and
is
typically
used
when
<ins class="diff-new">working
with
legacy
applications
that
depend
on
a
specific
structure
of
</ins>
the
<a class="tref internalDFN" title="json-object" href="#dfn-json-object">
JSON
object
<del class="diff-old">has
legacy
applications
using
</del>
</a>.
<ins class="diff-chg">If
a
</ins><a class="tref internalDFN" title="term" href="#dfn-term"><ins class="diff-chg">
term
</ins></a><ins class="diff-chg">
is
redefined
within
a
context,
all
previous
rules
associated
with
</ins>
the
<del class="diff-old">structure
</del>
<ins class="diff-chg">previous
definition
are
removed.
If
a
</ins><a class="tref internalDFN" title="term" href="#dfn-term"><ins class="diff-chg">
term
</ins></a><ins class="diff-chg">
is
redefined
to
</ins><code><ins class="diff-chg">
null
</ins></code>,<ins class="diff-chg">
the
</ins><a class="tref internalDFN" title="term" href="#dfn-term"><ins class="diff-chg">
term
</ins></a><ins class="diff-chg">
is
effectively
removed
from
the
list
</ins>
of
<a class="tref internalDFN" title="term" href="#dfn-term">
<ins class="diff-new">terms
</ins></a><ins class="diff-new">
defined
in
</ins>
the
<del class="diff-old">object.
</del>
<a class="tref internalDFN" title="active-context" href="#dfn-active-context">
<ins class="diff-chg">active
context
</ins></a>.
</p>
<p>
<del class="diff-old">External
JSON-LD
context
documents
</del>
<ins class="diff-chg">Multiple
contexts
</ins>
may
<del class="diff-old">contain
extra
information
located
outside
</del>
<ins class="diff-chg">be
combined
using
an
</ins><a class="tref internalDFN" title="array" href="#dfn-array"><ins class="diff-chg">
array
</ins></a>,<ins class="diff-chg">
which
is
processed
in
order.
The
set
</ins>
of
<del class="diff-old">the
@context
key,
such
</del>
<ins class="diff-chg">contexts
defined
within
a
specific
</ins><a class="tref internalDFN" title="json-object" href="#dfn-json-object"><ins class="diff-chg">
JSON
object
</ins></a><ins class="diff-chg">
are
referred
to
</ins>
as
<del class="diff-old">documentation
about
</del>
<dfn title="local-context" id="dfn-local-context">
<ins class="diff-chg">local
contexts
</ins></dfn>.<ins class="diff-chg">
The
</ins><dfn title="active-context" id="dfn-active-context"><ins class="diff-chg">
active
context
</ins></dfn><ins class="diff-chg">
refers
to
</ins>
the
<del class="diff-old">prefixes
</del>
<ins class="diff-chg">accumulation
of
</ins><a class="tref internalDFN" title="local-context" href="#dfn-local-context"><ins class="diff-chg">
local
contexts
</ins>
</a>
<del class="diff-old">declared
</del>
<ins class="diff-chg">that
are
</ins>
in
<ins class="diff-new">scope
at
a
specific
point
within
</ins>
the
document.
<del class="diff-old">When
importing
</del>
<ins class="diff-chg">Setting
</ins>
a
<a class="tref internalDFN" title="local-context" href="#dfn-local-context">
<ins class="diff-new">local
context
</ins></a><ins class="diff-new">
to
</ins>
<code>
<del class="diff-old">@context
</del>
<ins class="diff-chg">null
</ins>
</code>
<del class="diff-old">value
from
</del>
<ins class="diff-chg">effectively
resets
the
</ins><a class="tref internalDFN" title="active-context" href="#dfn-active-context"><ins class="diff-chg">
active
context
</ins></a><ins class="diff-chg">
to
an
empty
context.
The
following
example
specifies
</ins>
an
external
<del class="diff-old">JSON-LD
</del>
context
<del class="diff-old">document,
any
extra
information
contained
outside
</del>
<ins class="diff-chg">and
then
layers
an
embedded
context
on
top
</ins>
of
the
<ins class="diff-new">external
context:
</ins></p>  <div class="example"><div class="example-title"><span>Example 29</span>: Combining external and local contexts</div><pre class="example">{  <span class="diff">&quot;@context&quot;: [<ins class="diff-new">
    &quot;http://json-ld.org/contexts/person.jsonld&quot;,
    {
      &quot;pic&quot;: &quot;http://xmlns.com/foaf/0.1/depiction&quot;
    }
  ],</span>
  &quot;name&quot;: &quot;Manu Sporny&quot;,
  &quot;homepage&quot;: &quot;http://manu.sporny.org/&quot;,
</ins>  <span class="diff">&quot;pic&quot;: &quot;http://twitter.com/account/profile_image/manusporny&quot;</span><ins class="diff-new">
}
</ins></pre></div><div class="note"><div class="note-title"><span><ins class="diff-new">
Note
</ins></span></div><p class=""><ins class="diff-new">
When
possible,
the
</ins><a class="tref internalDFN" title="context" href="#dfn-context"><ins class="diff-new">
context
</ins></a><ins class="diff-new">
definition
should
be
put
at
the
top
of
a
JSON-LD
document.
This
makes
the
document
easier
to
read
and
might
make
streaming
parsers
more
efficient.
Documents
that
do
not
have
the
</ins><a class="tref internalDFN" title="context" href="#dfn-context"><ins class="diff-new">
context
</ins></a><ins class="diff-new">
at
the
top
are
still
conformant
JSON-LD.
</ins></p></div><div class="note"><div class="note-title"><span><ins class="diff-new">
Note
</ins></span></div><p class=""><ins class="diff-new">
To
avoid
forward-compatibility
issues,
</ins><a class="tref internalDFN" title="term" href="#dfn-term"><ins class="diff-new">
terms
</ins></a><ins class="diff-new">
starting
with
an
</ins>
<code>
<del class="diff-old">@context
</del>
<ins class="diff-chg">@
</ins>
</code>
<del class="diff-old">value
must
</del>
<ins class="diff-chg">character
are
to
</ins>
be
<del class="diff-old">discarded.
It
is
also
recommended
</del>
<ins class="diff-chg">avoided
as
they
might
be
used
as
</ins><a class="tref internalDFN" title="keyword" href="#dfn-keyword"><ins class="diff-chg">
keywords
</ins></a><ins class="diff-chg">
in
future
versions
of
JSON-LD.
Terms
starting
with
an
</ins><code><ins class="diff-chg">
@
</ins></code><ins class="diff-chg">
character
</ins>
that
<del class="diff-old">a
human-readable
document
is
served
</del>
<ins class="diff-chg">are
not
</ins><a class="tref internalDFN" title="keyword" href="#dfn-keyword"><ins class="diff-chg">
JSON-LD
1.0
keywords
</ins></a><ins class="diff-chg">
are
treated
</ins>
as
<del class="diff-old">well
</del>
<ins class="diff-chg">any
other
term,
i.e.,
they
are
ignored
unless
mapped
</ins>
to
<del class="diff-old">explain
</del>
<ins class="diff-chg">an
</ins><a class="tref internalDFN" title="iri" href="#dfn-iri"><abbr title="Internationalized Resource Identifier"><ins class="diff-chg">
IRI
</ins></abbr></a>.<ins class="diff-chg">
Furthermore,
</ins>
the
<del class="diff-old">correct
usage
</del>
<ins class="diff-chg">use
</ins>
of
<del class="diff-old">the
JSON-LD
context
document.
</del>
<ins class="diff-chg">empty
</ins><a class="tref internalDFN" title="term" href="#dfn-term"><ins class="diff-chg">
terms
</ins></a><ins class="diff-chg">
(
</ins><code><ins class="diff-chg">
&quot;&quot;
</ins></code><ins class="diff-chg">
)
is
not
allowed
as
not
all
programming
languages
are
able
to
handle
empty
JSON
keys.
</ins>
</p>
</div>
</div>
<div class="normative section" id="interpreting-json-as-json-ld">
<h3>
<span class="secno">
<del class="diff-old">4.4
</del>
<ins class="diff-chg">6.8
</ins>
</span>
<del class="diff-old">Referencing
Contexts
from
</del>
<ins class="diff-chg">Interpreting
</ins>
JSON
<del class="diff-old">Documents
</del>
<ins class="diff-chg">as
JSON-LD
</ins>
</h3>
<p>
Ordinary
JSON
documents
can
be
<del class="diff-old">transformed
into
</del>
<ins class="diff-chg">interpreted
as
</ins>
JSON-LD
<del class="diff-old">documents
</del>
by
referencing
<del class="diff-old">to
an
external
</del>
<ins class="diff-chg">a
</ins>
JSON-LD
<a class="tref internalDFN" title="context" href="#dfn-context">
context
</a>
<ins class="diff-new">document
</ins>
in
an
HTTP
Link
Header.
Doing
<del class="diff-old">this
</del>
<ins class="diff-chg">so
</ins>
allows
JSON
to
be
unambiguously
machine-readable
without
requiring
developers
to
drastically
change
their
<del class="diff-old">workflow
</del>
<ins class="diff-chg">documents
</ins>
and
provides
an
upgrade
path
for
existing
infrastructure
without
breaking
existing
clients
that
rely
on
the
<code>
application/json
</code>
media
type.
</p>
<p>
In
order
to
use
an
external
context
with
an
ordinary
JSON
document,
an
author
<del class="diff-old">must
</del>
<em class="rfc2119" title="MUST">
<ins class="diff-chg">MUST
</ins>
</em>
specify
an
<a class="tref internalDFN" title="iri" href="#dfn-iri">
<abbr title="Internationalized Resource Identifier">
IRI
</abbr>
</a>
to
a
valid
<a class="tref internalDFN" title="json-ld-document" href="#dfn-json-ld-document">
JSON-LD
document
</a>
in
an
HTTP
Link
Header
[
<cite>
<a class="bibref" href="#bib-RFC5988">
RFC5988
</a>
</cite>
]
using
the
<code>
<del class="diff-old">describedby
</del>
<ins class="diff-chg">http://www.w3.org/ns/json-ld#context
</ins>
</code>
link
relation.
The
referenced
document
<del class="diff-old">must
</del>
<em class="rfc2119" title="MUST">
<ins class="diff-chg">MUST
</ins>
</em>
have
a
top-level
<del class="diff-old">subject
definition
</del>
<a class="tref internalDFN" title="json-object" href="#dfn-json-object">
<ins class="diff-chg">JSON
object
</ins>
</a>.
The
<code>
@context
</code>
subtree
within
that
object
is
added
to
the
top-level
<del class="diff-old">subject
definition
</del>
<a class="tref internalDFN" title="json-object" href="#dfn-json-object">
<ins class="diff-chg">JSON
object
</ins>
</a>
of
the
referencing
document.
If
an
<a class="tref internalDFN" title="array" href="#dfn-array">
array
</a>
is
at
the
top-level
of
the
referencing
document
and
its
items
are
<del class="diff-old">subject
definitions
</del>
<a class="tref internalDFN" title="json-object" href="#dfn-json-object">
<ins class="diff-chg">JSON
objects
</ins>
</a>,
the
<code>
@context
</code>
subtree
is
added
to
all
<a class="tref internalDFN" title="array" href="#dfn-array">
array
</a>
items.
All
extra
information
located
outside
of
the
<code>
@context
</code>
subtree
in
the
referenced
document
<del class="diff-old">must
</del>
<em class="rfc2119" title="MUST">
<ins class="diff-chg">MUST
</ins>
</em>
be
discarded.
<ins class="diff-new">Effectively
this
means
that
the
</ins><a class="tref internalDFN" title="active-context" href="#dfn-active-context"><ins class="diff-new">
active
context
</ins></a><ins class="diff-new">
is
initialized
with
the
referenced
external
</ins><a class="tref internalDFN" title="context" href="#dfn-context"><ins class="diff-new">
context
</ins></a>.
</p>
<p>
The
following
example
demonstrates
the
use
of
an
external
context
with
an
ordinary
JSON
document:
</p>
<del class="diff-old">GET /ordinary-json-document.json HTTP/1.1
</del>
  <div class="example"><div class="example-title"><span>Example 30</span>: Referencing a JSON-LD context from a JSON document via an HTTP Link Header</div><pre class="example">GET /ordinary-json-document.json HTTP/1.1
Host: example.com
Accept: application/ld+json,application/json,*/*;q=0.1
====================================
HTTP/1.0 200 OK
...
Content-Type: <span class="diff">application/json</span>
<span class="diff">Link: &lt;http://json-ld.org/contexts/person.jsonld&gt;; rel=&quot;http://www.w3.org/ns/json-ld#context&quot;; type=&quot;application/ld+json&quot;</span>
{
  &quot;name&quot;: &quot;Markus Lanthaler&quot;,
  &quot;homepage&quot;: &quot;http://www.markus-lanthaler.com/&quot;,
<del class="diff-old">  &quot;depiction&quot;: &quot;http://twitter.com/account/profile_image/markuslanthaler&quot;
</del>
<ins class="diff-chg">  &quot;image&quot;: &quot;http://twitter.com/account/profile_image/markuslanthaler&quot;
</ins>
}
</pre>
</div>
<del class="diff-old">Note
</del>
<p>
<ins class="diff-chg">Please
note
that
</ins><a class="tref internalDFN" title="json-ld-document" href="#dfn-json-ld-document">
JSON-LD
documents
</a>
served
with
the
<code>
application/ld+json
</code>
media
type
<del class="diff-old">must
</del>
<em class="rfc2119" title="MUST">
<ins class="diff-chg">MUST
</ins>
</em>
have
all
context
information,
including
references
to
external
contexts,
within
the
body
of
the
document.
<ins class="diff-new">Contexts
linked
via
a
</ins><code><ins class="diff-new">
http://www.w3.org/ns/json-ld#context
</ins></code><ins class="diff-new">
HTTP
Link
Header
</ins><em class="rfc2119" title="MUST"><ins class="diff-new">
MUST
</ins></em><ins class="diff-new">
be
ignored
for
such
documents.
</ins>
</p>
</div>
<div class="informative section" id="string-internationalization">
<h3>
<span class="secno">
<del class="diff-old">4.5
</del>
<ins class="diff-chg">6.9
</ins>
</span>
<del class="diff-old">Expanded
Term
Definition
</del>
<ins class="diff-chg">String
Internationalization
</ins>
</h3>
<p>
<del class="diff-old">Within
a
context
definition,
term
s
may
</del>
<em>
<ins class="diff-chg">This
section
is
non-normative.
</ins>
</em>
<del class="diff-old">be
defined
using
an
expanded
notation
to
allow
for
additional
information
associated
with
the
term
to
be
specified
(see
also
Type
Coercion
and
Sets
and
Lists
).
</del>
</p>
<p>
<del class="diff-old">Instead
of
using
</del>
<ins class="diff-chg">At
times,
it
is
important
to
annotate
</ins>
a
<a class="tref internalDFN" title="string" href="#dfn-string">
string
<del class="diff-old">representation
</del>
</a>
<ins class="diff-chg">with
its
language.
In
JSON-LD
this
is
possible
in
a
variety
</ins>
of
<del class="diff-old">an
IRI
,
the
IRI
may
be
specified
using
</del>
<ins class="diff-chg">ways.
First,
it
is
possible
to
define
</ins>
a
<del class="diff-old">JSON
object
having
an
</del>
<ins class="diff-chg">default
language
for
a
JSON-LD
document
by
setting
the
</ins>
<code>
<del class="diff-old">@id
</del>
<ins class="diff-chg">@language
</ins>
</code>
<del class="diff-old">key.
</del>
<ins class="diff-chg">key
in
the
</ins><a class="tref internalDFN" title="context" href="#dfn-context"><ins class="diff-chg">
context
</ins></a>:</p>  <div class="example"><div class="example-title"><span>Example 31</span>: Setting the default language of a JSON-LD document</div><pre class="example">{  <span class="diff">&quot;@context&quot;:<ins class="diff-chg">
  {
    ...
    &quot;@language&quot;: &quot;ja&quot;
  }</span>,
  &quot;name&quot;: <span class="diff">&quot;花澄&quot;</span>,
  &quot;occupation&quot;: <span class="diff">&quot;科学者&quot;</span>
}
</ins></pre></div><p>
The
<del class="diff-old">value
of
</del>
<ins class="diff-chg">example
above
would
associate
</ins>
the
<code>
<del class="diff-old">@id
</del>
<ins class="diff-chg">ja
</ins>
</code>
<del class="diff-old">key
must
</del>
<ins class="diff-chg">language
code
with
the
two
</ins><a class="tref internalDFN" title="string" href="#dfn-string"><ins class="diff-chg">
strings
</ins></a><em><ins class="diff-chg">
花澄
</ins>
</em>
<del class="diff-old">be
either
a
term
,
a
compact
IRI
</del>
<ins class="diff-chg">and
</ins><em><ins class="diff-chg">
科学者
</ins></em>.<ins class="diff-chg">
Languages
codes
are
defined
in
[
</ins><cite>
<del class="diff-old">,
or
an
absolute
IRI
</del>
<a class="bibref" href="#bib-BCP47">
<ins class="diff-chg">BCP47
</ins></a>
</cite>
<ins class="diff-new">].
The
default
language
applies
to
all
</ins><a class="tref internalDFN" title="string" href="#dfn-string"><ins class="diff-new">
string
</ins></a><ins class="diff-new">
values
that
are
not
</ins><a href="#type-coercion"><ins class="diff-new">
type
coerced
</ins>
</a>.
<del class="diff-old">Such
an
object
is
called
</del>
</p>
<p>
<ins class="diff-chg">To
clear
the
default
language
for
</ins>
a
<del class="diff-old">subject
reference
.
</del>
<ins class="diff-chg">subtree,
</ins><code><ins class="diff-chg">
@language
</ins></code><ins class="diff-chg">
can
be
set
to
</ins><code><ins class="diff-chg">
null
</ins></code><ins class="diff-chg">
in
a
</ins><a class="tref internalDFN" title="local-context" href="#dfn-local-context"><ins class="diff-chg">
local
context
</ins></a><ins class="diff-chg">
as
follows:
</ins>
</p>
<del class="diff-old">{
  &quot;@context&quot;:
  {
    &quot;foaf&quot;: ,
    &quot;name&quot;: ,
    &quot;homepage&quot;: ,
    &quot;depiction&quot;:
</del>
  <div class="example"><div class="example-title"><span>Example 32</span>: Clearing default language</div><pre class="example">{
<ins class="diff-chg">  &quot;@context&quot;: {
    ...
    &quot;@language&quot;: &quot;ja&quot;
</ins>
  },
<del class="diff-old">  &quot;name&quot;: &quot;Manu Sporny&quot;,
  &quot;homepage&quot;: &quot;http://manu.sporny.org/&quot;,
  &quot;depiction&quot;: &quot;http://twitter.com/account/profile_image/manusporny&quot;
</del>
<ins class="diff-chg">  &quot;name&quot;: &quot;花澄&quot;,
  &quot;details&quot;: {
</ins><span class="diff">    &quot;@context&quot;: {<ins class="diff-chg">
      &quot;@language&quot;: null
    }</span>,
    &quot;occupation&quot;: &quot;Ninja&quot;
  }
</ins>
}
</pre>
</div>
<p>
<del class="diff-old">This
allows
additional
information
to
be
associated
with
the
term.
This
may
be
used
for
Type
Coercion
,
Sets
and
Lists
),
or
</del>
<ins class="diff-chg">Second,
it
is
possible
</ins>
to
associate
<ins class="diff-new">a
</ins>
language
<del class="diff-old">information
</del>
with
a
<ins class="diff-new">specific
</ins><a class="tref internalDFN" title="term" href="#dfn-term">
term
<del class="diff-old">as
shown
in
the
following
example:
</del>
</a>
<ins class="diff-chg">using
an
</ins><a class="tref internalDFN" title="expanded-term-definition" href="#dfn-expanded-term-definition"><ins class="diff-chg">
expanded
term
definition
</ins></a>:
</p>
<del class="diff-old">{
</del>
  <div class="example"><div class="example-title"><span>Example 33</span>: Expanded term definition with language</div><pre class="example">{
  &quot;@context&quot;: {
    ...
<del class="diff-old">    &quot;ex&quot;: &quot;http://example.com/&quot;,
</del>
<ins class="diff-chg">    &quot;ex&quot;: &quot;http://example.com/vocab/&quot;,
</ins>
    &quot;@language&quot;: &quot;ja&quot;,
    &quot;name&quot;: { &quot;@id&quot;: &quot;ex:name&quot;, <span class="diff">&quot;@language&quot;: null</span> },
    &quot;occupation&quot;: { &quot;@id&quot;: &quot;ex:occupation&quot; },
    &quot;occupation_en&quot;: { &quot;@id&quot;: &quot;ex:occupation&quot;, <span class="diff">&quot;@language&quot;: &quot;en&quot;</span> },
    &quot;occupation_cs&quot;: { &quot;@id&quot;: &quot;ex:occupation&quot;, <span class="diff">&quot;@language&quot;: &quot;cs&quot;</span> }
  },
  <span class="diff">&quot;name&quot;: &quot;Yagyū Muneyoshi&quot;,
  &quot;occupation&quot;: &quot;忍者&quot;,
  &quot;occupation_en&quot;: &quot;Ninja&quot;,
  &quot;occupation_cs&quot;: &quot;Nindža&quot;,</span>
  ...
}
</pre>
</div>
<p>
The
example
above
would
associate
<em>
忍者
</em>
with
the
specified
default
language
code
<code>
ja
</code>,
<em>
Ninja
</em>
with
the
language
code
<code>
en
</code>,
and
<em>
Nindža
</em>
with
the
language
code
<code>
cs
</code>.
The
value
of
<code>
name
</code>,
<em>
Yagyū
Muneyoshi
</em>
wouldn't
be
associated
with
any
language
code
since
<code>
@language
</code>
was
reset
to
<a class="tref internalDFN" title="null" href="#dfn-null">
null
</a>
in
the
<a class="tref internalDFN" title="expanded-term-definition" href="#dfn-expanded-term-definition">
expanded
term
<del class="diff-old">definition.
Expanded
terms
may
also
be
defined
using
compact
IRIs
or
absolute
IRIs
as
keys.
If
the
</del>
definition
<del class="diff-old">does
not
include
an
@id
key,
the
expanded
IRI
is
determined
by
performing
expansion
of
the
key
within
the
current
active
context.
This
mechanism
is
mainly
used
to
associate
type
or
language
information
with
a
compact
IRI
or
an
absolute
IRI
</del>
</a>.
</p>
<div class="note">
<div class="note-title">
<span>
Note
</span>
</div>
<p class="">
<del class="diff-old">While
it
is
possible
to
define
a
compact
IRI
,
or
an
absolute
IRI
to
expand
to
some
other
unrelated
IRI
(for
example,
foaf:name
expanding
</del>
<ins class="diff-chg">Language
associations
are
only
applied
</ins>
to
<del class="diff-old">http://example.org/unrelated#species
),
such
usage
is
strongly
discouraged.
4.6
Type
Coercion
JSON-LD
supports
the
coercion
of
</del>
<ins class="diff-chg">plain
</ins><a class="tref internalDFN" title="string" href="#dfn-string"><ins class="diff-chg">
strings
</ins></a>.<a class="tref internalDFN" title="typed-value" href="#dfn-typed-value"><ins class="diff-chg">
Typed
</ins>
values
<del class="diff-old">to
particular
data
types.
Type
coercion
allows
someone
deploying
JSON-LD
to
coerce
the
incoming
</del>
</a>
or
<del class="diff-old">outgoing
</del>
values
<ins class="diff-new">that
are
subject
</ins>
to
<del class="diff-old">the
proper
data
type
based
on
a
mapping
of
data
type
IRI
s
to
term
s.
Using
type
coercion,
value
representation
is
preserved
without
requiring
the
data
</del>
<a href="#type-coercion">
type
<del class="diff-old">to
be
specified
with
each
piece
of
data.
Type
</del>
coercion
<del class="diff-old">is
specified
within
an
expanded
term
definition
</del>
</a>
<del class="diff-old">using
the
@type
key.
The
value
of
this
key
represents
a
type
IRI
and
must
take
the
form
of
a
term
,
compact
IRI
,
absolute
IRI
,
or
the
keyword
@id
.
Specifying
@id
indicates
that
within
the
body
of
a
JSON-LD
document,
a
string
value
of
a
term
coerced
to
@id
is
to
be
interpreted
as
an
IRI
.
</del>
<ins class="diff-chg">are
not
language
tagged.
</ins>
</p>
<del class="diff-old">Terms
or
compact
IRIs
used
</del>
</div>
<p>
<ins class="diff-chg">Just
</ins>
as
<ins class="diff-new">in
the
example
above,
systems
often
need
to
express
</ins>
the
value
of
a
<del class="diff-old">@type
key
may
be
defined
within
the
same
context.
This
means
</del>
<ins class="diff-chg">property
in
multiple
languages.
Typically,
such
systems
also
try
to
ensure
</ins>
that
<del class="diff-old">one
may
specify
</del>
<ins class="diff-chg">developers
have
</ins>
a
<del class="diff-old">term
like
xsd
and
then
use
xsd:integer
within
the
same
context
definition
-
the
JSON-LD
processor
will
be
able
</del>
<ins class="diff-chg">programmatically
easy
way
</ins>
to
<del class="diff-old">determine
</del>
<ins class="diff-chg">navigate
</ins>
the
<del class="diff-old">proper
expansion
</del>
<ins class="diff-chg">data
structures
</ins>
for
<del class="diff-old">xsd:integer
.
The
example
below
demonstrates
how
a
JSON-LD
author
can
coerce
values
to
typed
value
</del>
<ins class="diff-chg">the
language-specific
data.
In
this
case,
</ins><a class="tref internalDFN" title="language-map" href="#dfn-language-map"><ins class="diff-chg">
language
maps
</ins>
</a>
<del class="diff-old">s,
IRIs
and
lists.
</del>
<ins class="diff-chg">may
be
utilized.
</ins>
</p>
<del class="diff-old">{
</del>
  <div class="example"><div class="example-title"><span>Example 34</span>: Language map expressing a property in three languages</div><pre class="example">{
  &quot;@context&quot;:
  {
<del class="diff-old">    &quot;xsd&quot;: &quot;http://www.w3.org/2001/XMLSchema#&quot;,
    &quot;name&quot;: &quot;http://xmlns.com/foaf/0.1/name&quot;,
    &quot;age&quot;:
    {
      &quot;@id&quot;: &quot;http://xmlns.com/foaf/0.1/age&quot;,
      &quot;@type&quot;: &quot;xsd:integer&quot;
    },
    &quot;homepage&quot;:
    {
      &quot;@id&quot;: &quot;http://xmlns.com/foaf/0.1/homepage&quot;,
      &quot;@type&quot;: &quot;@id&quot;,
      &quot;@container&quot;: &quot;@list&quot;
    }
</del>
<ins class="diff-chg">    ...
    &quot;occupation&quot;: { &quot;@id&quot;: &quot;ex:occupation&quot;, <span class="diff">&quot;@container&quot;: &quot;@language&quot;</span> }
</ins>
  },
<del class="diff-old">  &quot;name&quot;: &quot;John Smith&quot;,
  &quot;age&quot;: ,
  &quot;homepage&quot;:
  [
    &quot;http://personal.example.org/&quot;,
    &quot;http://work.example.com/jsmith/&quot;
  ]
</del>
<ins class="diff-chg">  &quot;name&quot;: &quot;Yagyū Muneyoshi&quot;,
  &quot;occupation&quot;:
</ins>  <span class="diff">{<ins class="diff-chg">
    &quot;ja&quot;: &quot;忍者&quot;,
    &quot;en&quot;: &quot;Ninja&quot;,
    &quot;cs&quot;: &quot;Nindža&quot;
  }</span>
  ...
</ins>
}
</pre>
</div>
<p>
The
example
above
<del class="diff-old">would
generate
</del>
<ins class="diff-chg">expresses
exactly
</ins>
the
<del class="diff-old">following
Turtle:
@prefix xsd: &lt;http://www.w3.org/2001/XMLSchema#&gt; .
[ foaf:name &quot;John Smith&quot;;
  foaf:age  &quot;41&quot;^^xsd:integer;
  foaf:homepage ( &lt;http://personal.example.org/&gt; &lt;http://work.example.com/jsmith/&gt; )
]
.
Terms
may
also
be
defined
using
absolute
IRIs
or
compact
IRIs
.
This
allows
coercion
rules
to
be
applied
to
keys
which
are
not
represented
</del>
<ins class="diff-chg">same
information
</ins>
as
<del class="diff-old">a
simple
term
.
For
example:
{
  &quot;@context&quot;:
  {
    ,
    &quot;&quot;:
    {
      &quot;@type&quot;: &quot;xsd:integer&quot;
    },
    &quot;&quot;:
    {
      &quot;@type&quot;: &quot;@id&quot;
    }
  },
  &quot;foaf:name&quot;: &quot;John Smith&quot;,
  &quot;foaf:age&quot;: ,
  &quot;foaf:homepage&quot;:
  [
    &quot;http://personal.example.org/&quot;,
    &quot;http://work.example.com/jsmith/&quot;
  ]
}
In
this
case
</del>
the
<del class="diff-old">@id
definition
is
optional,
</del>
<ins class="diff-chg">previous
example
</ins>
but
<del class="diff-old">if
it
does
exist,
the
compact
IRI
or
IRI
is
treated
as
a
term
(not
</del>
<ins class="diff-chg">consolidates
all
values
in
</ins>
a
<del class="diff-old">prefix:suffix
construct)
so
that
</del>
<ins class="diff-chg">single
property.
To
access
</ins>
the
<del class="diff-old">actual
definition
of
</del>
<ins class="diff-chg">value
in
</ins>
a
<del class="diff-old">prefix
becomes
unnecessary.
Note
Keys
</del>
<ins class="diff-chg">specific
language
</ins>
in
<del class="diff-old">the
context
are
treated
as
terms
</del>
<ins class="diff-chg">a
programming
language
supporting
dot-notation
accessors
</ins>
for
<del class="diff-old">the
purpose
of
expansion
and
value
coercion.
At
times,
this
</del>
<ins class="diff-chg">object
properties,
a
developer
</ins>
may
<del class="diff-old">result
in
multiple
representations
for
</del>
<ins class="diff-chg">use
</ins>
the
<del class="diff-old">same
expanded
IRI
.
For
example,
one
could
specify
that
dog
and
</del>
<code>
<del class="diff-old">cat
</del>
<ins class="diff-chg">property.language
</ins>
</code>
<del class="diff-old">both
expanded
</del>
<ins class="diff-chg">pattern.
For
example,
</ins>
to
<ins class="diff-new">access
the
occupation
in
English,
a
developer
would
use
the
following
code
snippet:
</ins>
<code>
<del class="diff-old">http://example.com/vocab#animal
</del>
<ins class="diff-chg">obj.occupation.en
</ins>
</code>.
<del class="diff-old">Doing
this
could
be
useful
for
establishing
different
type
coercion
or
</del>
</p>
<p>
<ins class="diff-chg">Third,
it
is
possible
to
override
the
default
</ins>
language
<del class="diff-old">specification
rules.
It
also
allows
</del>
<ins class="diff-chg">by
using
</ins>
a
<del class="diff-old">compact
IRI
(or
even
an
absolute
IRI
</del>
<a class="tref internalDFN" title="value-object" href="#dfn-value-object">
<ins class="diff-chg">value
object
</ins></a>:</p>  <div class="example"><div class="example-title"><span>Example 35</span>: Overriding default language using an expanded value</div><pre class="example">{<ins class="diff-chg">
  &quot;@context&quot;: {
    ...
    &quot;@language&quot;: &quot;ja&quot;
  },
  &quot;name&quot;: &quot;花澄&quot;,
  &quot;occupation&quot;: <span class="diff">{
    &quot;@value&quot;: &quot;Scientist&quot;,
    &quot;@language&quot;: &quot;en&quot;
  }</span>
}
</ins></pre>
<del class="diff-old">)
</del>
</div>
<p>
<ins class="diff-chg">This
makes
it
possible
</ins>
to
<del class="diff-old">be
defined
as
something
else
entirely.
For
example,
one
could
</del>
specify
<del class="diff-old">that
</del>
<ins class="diff-chg">a
plain
string
by
omitting
</ins>
the
<del class="diff-old">term
</del>
<code>
<del class="diff-old">http://example.org/zoo
</del>
<ins class="diff-chg">@language
</ins>
</code>
<del class="diff-old">should
expand
</del>
<ins class="diff-chg">tag
or
setting
it
</ins>
to
<code>
<del class="diff-old">http://example.org/river
,
but
this
usage
is
discouraged
because
</del>
<ins class="diff-chg">null
</ins></code><ins class="diff-chg">
when
expressing
</ins>
it
<del class="diff-old">would
lead
to
</del>
<ins class="diff-chg">using
</ins>
a
<del class="diff-old">great
deal
of
confusion
among
developers
attempting
to
understand
the
JSON-LD
document.
</del>
<a class="tref internalDFN" title="value-object" href="#dfn-value-object">
<ins class="diff-chg">value
object
</ins></a>:
</p>
  <div class="example"><div class="example-title"><span>Example 36</span>: Removing language information using an expanded value</div><pre class="example">{
<ins class="diff-new">  &quot;@context&quot;: {
    ...
    &quot;@language&quot;: &quot;ja&quot;
  },
  &quot;name&quot;: <span class="diff">{
    &quot;@value&quot;: &quot;Frank&quot;
  }</span>,
  &quot;occupation&quot;: {
    &quot;@value&quot;: &quot;Ninja&quot;,
    &quot;@language&quot;: &quot;en&quot;
  },
  &quot;speciality&quot;: &quot;手裏剣&quot;
}
</ins></pre>
</div>
<del class="diff-old">Type
coercion
is
performed
using
the
unexpanded
value
of
the
key,
which
must
have
an
exact
match
for
an
entry
in
the
active
context
.
</del>
</div>
<div class="informative section" id="iri-expansion-within-a-context">
<h3>
<span class="secno">
<del class="diff-old">4.7
</del>
<ins class="diff-chg">6.10
</ins>
</span>
<abbr title="Internationalized Resource Identifier">
IRI
</abbr>
Expansion
<del class="diff-old">Within
</del>
<ins class="diff-chg">within
</ins>
a
Context
</h3>
<p>
<em>
<ins class="diff-new">This
section
is
non-normative.
</ins></em></p>
<p>
In
general,
normal
<abbr title="Internationalized Resource Identifier">
IRI
</abbr>
expansion
rules
apply
anywhere
an
<abbr title="Internationalized Resource Identifier">
IRI
</abbr>
is
expected
(see
<a class="sectionRef sec-ref" href="#iris">
<ins class="diff-chg">section
5.2
</ins>
IRIs
</a>
).
Within
a
<a class="tref internalDFN" title="context" href="#dfn-context">
context
</a>
definition,
this
can
mean
that
terms
defined
within
the
context
may
also
be
used
within
that
context
as
long
as
there
are
no
circular
dependencies.
For
example,
it
is
common
to
use
the
<code>
xsd
</code>
namespace
when
defining
<a class="tref internalDFN" title="typed-value" href="#dfn-typed-value">
typed
value
</a>
s:
</p>
<del class="diff-old">{
</del>
<div class="example"><div class="example-title"><span>Example 37</span>: IRI expansion within a context</div><pre class="example">{
  &quot;@context&quot;:
  {
    <span class="diff">&quot;xsd&quot;: &quot;http://www.w3.org/2001/XMLSchema#&quot;</span>,
    &quot;name&quot;: &quot;http://xmlns.com/foaf/0.1/name&quot;,
    &quot;age&quot;:
    {
      &quot;@id&quot;: &quot;http://xmlns.com/foaf/0.1/age&quot;,
      &quot;@type&quot;: <span class="diff">&quot;xsd:integer&quot;</span>
    },
    &quot;homepage&quot;:
    {
      &quot;@id&quot;: &quot;http://xmlns.com/foaf/0.1/homepage&quot;,
      &quot;@type&quot;: &quot;@id&quot;
    }
  },
  ...
}
</pre>
</div>
<p>
In
this
example,
the
<code>
xsd
</code>
<a class="tref internalDFN" title="term" href="#dfn-term">
term
</a>
is
defined
and
used
as
a
<a class="tref internalDFN" title="prefix" href="#dfn-prefix">
prefix
</a>
for
the
<code>
@type
</code>
coercion
of
the
<code>
age
</code>
property.
</p>
<p>
<a class="tref internalDFN" title="term" href="#dfn-term">
<del class="diff-old">Term
</del>
<ins class="diff-chg">Terms
</ins>
</a>
<del class="diff-old">s
</del>
may
also
be
used
when
defining
the
<abbr title="Internationalized Resource Identifier">
IRI
</abbr>
of
another
<a class="tref internalDFN" title="term" href="#dfn-term">
term
</a>:
</p>
<del class="diff-old">{
</del>
<div class="example"><div class="example-title"><span>Example 38</span>: Using a term to define the IRI of another term within a context</div><pre class="example">{
  &quot;@context&quot;:
  {
    <span class="diff">&quot;foaf&quot;: &quot;http://xmlns.com/foaf/0.1/&quot;</span>,
    &quot;xsd&quot;: &quot;http://www.w3.org/2001/XMLSchema#&quot;,
    &quot;name&quot;: <span class="diff">&quot;foaf:name&quot;</span>,
    &quot;age&quot;:
    {
      &quot;@id&quot;: <span class="diff">&quot;foaf:age&quot;</span>,
      &quot;@type&quot;: &quot;xsd:integer&quot;
    },
    &quot;homepage&quot;:
    {
      &quot;@id&quot;: <span class="diff">&quot;foaf:homepage&quot;</span>,
      &quot;@type&quot;: &quot;@id&quot;
    }
  },
  ...
}
</pre>
</div>
<p>
<a class="tref internalDFN" title="compact-iri" href="#dfn-compact-iri">
Compact
IRIs
</a>
and
<a class="tref internalDFN" title="iri" href="#dfn-iri">
IRIs
</a>
may
be
used
on
the
left-hand
side
of
a
<a class="tref internalDFN" title="term" href="#dfn-term">
term
</a>
definition.
</p>
<del class="diff-old">{
</del>
<div class="example"><div class="example-title"><span>Example 39</span>: Using a compact IRI as a term</div><pre class="example">{
  &quot;@context&quot;:
  {
    <span class="diff">&quot;foaf&quot;: &quot;http://xmlns.com/foaf/0.1/&quot;</span>,
    &quot;xsd&quot;: &quot;http://www.w3.org/2001/XMLSchema#&quot;,
    &quot;name&quot;: &quot;foaf:name&quot;,
    &quot;<span class="diff">foaf:age</span>&quot;:
    {
      &quot;@type&quot;: &quot;xsd:integer&quot;
    },
    &quot;<span class="diff">foaf:homepage</span>&quot;:
    <span class="diff">{
      &quot;@type&quot;: &quot;@id&quot;
    }</span>
  },
  ...
}
</pre>
</div>
<p>
In
this
example,
the
<a class="tref internalDFN" title="compact-iri" href="#dfn-compact-iri">
compact
<abbr title="Internationalized Resource Identifier">
IRI
</abbr>
</a>
form
is
used
in
two
different
ways.
In
the
first
approach,
<code>
foaf:age
</code>
declares
both
the
<a class="tref internalDFN" title="iri" href="#dfn-iri">
<abbr title="Internationalized Resource Identifier">
IRI
</abbr>
</a>
for
the
<a class="tref internalDFN" title="term" href="#dfn-term">
term
</a>
(using
short-form)
as
well
as
the
<code>
@type
</code>
associated
with
the
<a class="tref internalDFN" title="term" href="#dfn-term">
term
</a>.
In
the
second
approach,
only
the
<code>
@type
</code>
associated
with
the
<a class="tref internalDFN" title="term" href="#dfn-term">
term
</a>
is
specified.
The
<del class="diff-old">JSON-LD
processor
will
derive
the
</del>
full
<a class="tref internalDFN" title="iri" href="#dfn-iri">
<abbr title="Internationalized Resource Identifier">
IRI
</abbr>
</a>
for
<code>
foaf:homepage
</code>
<ins class="diff-new">is
determined
</ins>
by
looking
up
the
<code>
foaf
</code>
<a class="tref internalDFN" title="prefix" href="#dfn-prefix">
prefix
</a>
in
the
<a class="tref internalDFN" title="context" href="#dfn-context">
context
</a>.
</p>
<p>
<a class="tref internalDFN" title="absolute-iri" href="#dfn-absolute-iri">
Absolute
IRIs
</a>
may
also
be
used
in
the
key
position
in
a
<a class="tref internalDFN" title="context" href="#dfn-context">
context
</a>:
</p>
<del class="diff-old">{
</del>
<div class="example"><div class="example-title"><span>Example 40</span>: Associating context definitions with absolute IRIs</div><pre class="example">{
  &quot;@context&quot;:
  {
    &quot;foaf&quot;: &quot;http://xmlns.com/foaf/0.1/&quot;,
    &quot;xsd&quot;: &quot;http://www.w3.org/2001/XMLSchema#&quot;,
    &quot;name&quot;: &quot;foaf:name&quot;,
    &quot;foaf:age&quot;:
    {
      &quot;@id&quot;: &quot;foaf:age&quot;,
      &quot;@type&quot;: &quot;xsd:integer&quot;
    },
    &quot;<span class="diff">http://xmlns.com/foaf/0.1/homepage</span>&quot;:
    {
      &quot;@type&quot;: &quot;@id&quot;
    }
  },
  ...
}
</pre>
</div>
<p>
In
order
for
the
<a class="tref internalDFN" title="absolute-iri" href="#dfn-absolute-iri">
absolute
<abbr title="Internationalized Resource Identifier">
IRI
</abbr>
</a>
to
match
above,
the
<a class="tref internalDFN" title="absolute-iri" href="#dfn-absolute-iri">
absolute
<abbr title="Internationalized Resource Identifier">
IRI
</abbr>
</a>
<del class="diff-old">must
also
</del>
<ins class="diff-chg">needs
to
</ins>
be
used
in
the
<a class="tref internalDFN" title="json-ld-document" href="#dfn-json-ld-document">
JSON-LD
<del class="diff-old">document.
</del>
<ins class="diff-chg">document
</ins></a>.
Also
note
that
<code>
foaf:homepage
</code>
will
not
use
the
<code>
{
&quot;@type&quot;:
&quot;@id&quot;
}
</code>
declaration
because
<code>
foaf:homepage
</code>
is
not
the
same
as
<code>
http://xmlns.com/foaf/0.1/homepage
</code>.
That
is,
<del class="diff-old">a
JSON-LD
processor
will
use
direct
string
comparison
when
looking
up
</del>
<a class="tref internalDFN" title="term" href="#dfn-term">
<del class="diff-old">term
</del>
<ins class="diff-chg">terms
</ins>
</a>
<del class="diff-old">s
</del>
<ins class="diff-chg">are
looked
up
</ins>
in
a
<a class="tref internalDFN" title="context" href="#dfn-context">
context
</a>
<ins class="diff-new">using
direct
string
comparison
</ins>
before
<del class="diff-old">it
applies
</del>
the
<a class="tref internalDFN" title="prefix" href="#dfn-prefix">
prefix
</a>
lookup
<del class="diff-old">mechanism.
</del>
<ins class="diff-chg">mechanism
is
applied.
</ins></p><div class="note"><div class="note-title"><span><ins class="diff-chg">
Note
</ins></span></div><p class=""><ins class="diff-chg">
While
it
is
possible
to
define
a
</ins><a class="tref internalDFN" title="compact-iri" href="#dfn-compact-iri"><ins class="diff-chg">
compact
</ins><abbr title="Internationalized Resource Identifier"><ins class="diff-chg">
IRI
</ins></abbr></a>,<ins class="diff-chg">
or
an
</ins><a class="tref internalDFN" title="absolute-iri" href="#dfn-absolute-iri"><ins class="diff-chg">
absolute
</ins><abbr title="Internationalized Resource Identifier"><ins class="diff-chg">
IRI
</ins></abbr></a><ins class="diff-chg">
to
expand
to
some
other
unrelated
</ins><a class="tref internalDFN" title="iri" href="#dfn-iri"><abbr title="Internationalized Resource Identifier"><ins class="diff-chg">
IRI
</ins></abbr></a><ins class="diff-chg">
(for
example,
</ins><code><ins class="diff-chg">
foaf:name
</ins></code><ins class="diff-chg">
expanding
to
</ins><code><ins class="diff-chg">
http://example.org/unrelated#species
</ins></code><ins class="diff-chg">
),
such
usage
is
strongly
discouraged.
</ins>
</p>
</div>
<p>
The
only
exception
for
using
terms
in
the
<a class="tref internalDFN" title="context" href="#dfn-context">
context
</a>
is
that
<del class="diff-old">they
must
not
be
used
in
a
</del>
circular
<del class="diff-old">manner.
</del>
<ins class="diff-chg">definitions
are
not
allowed.
</ins>
That
is,
a
definition
of
<em>
<del class="diff-old">term-1
must
not
</del>
<ins class="diff-chg">term1
</ins>
</em>
<ins class="diff-new">cannot
</ins>
depend
on
the
definition
of
<em>
<del class="diff-old">term-2
</del>
<ins class="diff-chg">term2
</ins>
</em>
if
<em>
<del class="diff-old">term-2
</del>
<ins class="diff-chg">term2
</ins>
</em>
also
depends
on
<em>
<del class="diff-old">term-1
</del>
<ins class="diff-chg">term1
</ins>
</em>.
For
example,
the
following
<a class="tref internalDFN" title="context" href="#dfn-context">
context
</a>
definition
is
illegal:
</p>
<del class="diff-old">{
</del>
<div class="example"><div class="example-title"><span>Example 41</span>: Illegal circular definition of terms within a context</div><pre class="example">{
  &quot;@context&quot;:
  {
    <span class="diff">&quot;term1&quot;: &quot;term2:foo&quot;,
    &quot;term2&quot;: &quot;term1:bar&quot;</span>
  },
  ...
}
</pre>
</div>
</div>
<div class="informative section" id="sets-and-lists">
<h3>
<span class="secno">
<del class="diff-old">4.8
</del>
<ins class="diff-chg">6.11
</ins>
</span>
Sets
and
Lists
</h3>
<p>
<em>
<ins class="diff-new">This
section
is
non-normative.
</ins></em></p>
<p>
A
JSON-LD
author
can
express
multiple
values
in
a
compact
way
by
using
<a class="tref internalDFN" title="array" href="#dfn-array">
<del class="diff-old">array
s.
</del>
<ins class="diff-chg">arrays
</ins></a>.
Since
graphs
do
not
describe
ordering
for
links
between
nodes,
arrays
in
JSON-LD
do
not
provide
an
ordering
of
the
<del class="diff-old">listed
objects
</del>
<ins class="diff-chg">contained
elements
</ins>
by
default.
This
is
exactly
the
opposite
from
regular
JSON
arrays,
which
are
ordered
by
default.
For
example,
consider
the
following
simple
document:
</p>
<del class="diff-old">{
</del>
<div class="example"><div class="example-title"><span>Example 42</span>: Multiple values with no inherent order</div><pre class="example">{
...
  &quot;@id&quot;: &quot;http://example.org/people#joebob&quot;,
<del class="diff-old">  &quot;nick&quot;: ,
</del>
<ins class="diff-chg">  &quot;nick&quot;: <span class="diff">[ &quot;joe&quot;, &quot;bob&quot;, &quot;JB&quot; ]</span>,
</ins>
...
}
</pre>
</div>
<p>
The
<del class="diff-old">markup
</del>
<ins class="diff-chg">example
</ins>
shown
above
would
result
in
<del class="diff-old">three
triples
</del>
<ins class="diff-chg">the
following
data
</ins>
being
generated,
each
relating
the
<del class="diff-old">subject
</del>
<ins class="diff-chg">node
</ins>
to
an
individual
<del class="diff-old">object
,
</del>
<ins class="diff-chg">value,
</ins>
with
no
inherent
order:
</p>
<del class="diff-old">&lt;http://example.org/people#joebob&gt;
   &lt;http://xmlns.com/foaf/0.1/nick&gt;
      &quot;joe&quot; .
&lt;http://example.org/people#joebob&gt;
   &lt;http://xmlns.com/foaf/0.1/nick&gt;
      &quot;bob&quot; .
&lt;http://example.org/people#joebob&gt;
   &lt;http://xmlns.com/foaf/0.1/nick&gt;
&quot;jaybee&quot;
.
</del>
<table class="example">
<thead>
<tr>
<th>
<ins class="diff-chg">Subject
</ins></th><th><ins class="diff-chg">
Property
</ins></th><th><ins class="diff-chg">
Value
</ins></th></tr></thead><tbody><tr><td><ins class="diff-chg">
http://example.org/people#joebob
</ins></td><td><ins class="diff-chg">
http://xmlns.com/foaf/0.1/nick
</ins></td><td><ins class="diff-chg">
joe
</ins></td></tr><tr><td><ins class="diff-chg">
http://example.org/people#joebob
</ins></td><td><ins class="diff-chg">
http://xmlns.com/foaf/0.1/nick
</ins></td><td><ins class="diff-chg">
bob
</ins></td></tr><tr><td><ins class="diff-chg">
http://example.org/people#joebob
</ins></td><td><ins class="diff-chg">
http://xmlns.com/foaf/0.1/nick
</ins></td><td><ins class="diff-chg">
JB
</ins></td></tr></tbody></table>
<p>
Multiple
values
may
also
be
expressed
using
the
expanded
form:
</p>
<del class="diff-old">{
</del>
<div class="example"><div class="example-title"><span>Example 43</span>: Using an expanded form to set multiple values</div><pre class="example">{
  &quot;@id&quot;: &quot;http://example.org/articles/8&quot;,
  &quot;dc:title&quot;: <span class="diff">
  [
    {
      &quot;@value&quot;: &quot;Das Kapital&quot;,
      &quot;@language&quot;: &quot;de&quot;
    },
    {
      &quot;@value&quot;: &quot;Capital&quot;,
      &quot;@language&quot;: &quot;en&quot;
    }
  ]</span>
}
</pre>
</div>
<p>
The
<del class="diff-old">markup
</del>
<ins class="diff-chg">example
</ins>
shown
above
would
generate
the
following
<del class="diff-old">triples,
</del>
<ins class="diff-chg">data,
</ins>
again
with
no
inherent
order:
</p>
<del class="diff-old">&lt;http://example.org/articles/8&gt;
   &lt;http://purl.org/dc/terms/title&gt;
      &quot;Das Kapital&quot;@de .
&lt;http://example.org/articles/8&gt;
   &lt;http://purl.org/dc/terms/title&gt;
&quot;Capital&quot;@en
.
</del>
<table class="example">
<thead>
<tr>
<th>
<ins class="diff-chg">Subject
</ins></th><th><ins class="diff-chg">
Property
</ins></th><th><ins class="diff-chg">
Value
</ins></th><th><ins class="diff-chg">
Language
</ins></th></tr></thead><tbody><tr><td><ins class="diff-chg">
http://example.org/articles/8
</ins></td><td><ins class="diff-chg">
http://purl.org/dc/terms/title
</ins></td><td><ins class="diff-chg">
Das
Kapital
</ins></td><td><ins class="diff-chg">
de
</ins></td></tr><tr><td><ins class="diff-chg">
http://example.org/articles/8
</ins></td><td><ins class="diff-chg">
http://purl.org/dc/terms/title
</ins></td><td><ins class="diff-chg">
Capital
</ins></td><td><ins class="diff-chg">
en
</ins></td></tr></tbody></table>
<p>
As
the
notion
of
ordered
collections
is
rather
important
in
data
modeling,
it
is
useful
to
have
specific
language
support.
In
JSON-LD,
a
list
may
be
represented
using
the
<code>
@list
</code>
<a class="tref internalDFN" title="keyword" href="#dfn-keyword">
keyword
</a>
as
follows:
</p>
<del class="diff-old">{
</del>
<div class="example"><div class="example-title"><span>Example 44</span>: An ordered collection of values in JSON-LD</div><pre class="example">{
...
  &quot;@id&quot;: &quot;http://example.org/people#joebob&quot;,
  &quot;foaf:nick&quot;:
  <span class="diff">{
    &quot;@list&quot;: [ &quot;joe&quot;, &quot;bob&quot;, &quot;jaybee&quot; ]
  }</span>,
...
}
</pre>
</div>
<p>
This
describes
the
use
of
this
<a class="tref internalDFN" title="array" href="#dfn-array">
array
</a>
as
being
ordered,
and
order
is
maintained
when
processing
a
document.
If
every
use
of
a
given
multi-valued
property
is
a
list,
this
may
be
abbreviated
by
setting
<code>
@container
</code>
to
<code>
@list
</code>
in
the
<a class="tref internalDFN" title="context" href="#dfn-context">
context
</a>:
</p>
<del class="diff-old">{
</del>
<div class="example"><div class="example-title"><span>Example 45</span>: Specifying that a collection is ordered in the context</div><pre class="example">{
  <span class="diff">&quot;@context&quot;:
  {
    ...
    &quot;nick&quot;:
    {
      &quot;@id&quot;: &quot;http://xmlns.com/foaf/0.1/nick&quot;,
      &quot;@container&quot;: &quot;@list&quot;
    }
  }</span>,
...
  &quot;@id&quot;: &quot;http://example.org/people#joebob&quot;,
  &quot;nick&quot;: <span class="diff">[ &quot;joe&quot;, &quot;bob&quot;, &quot;jaybee&quot; ]</span>,
...
}
</pre>
</div>
<div class="note">
<div class="note-title">
<span>
Note
</span>
</div>
<p class="">
List
of
lists
are
not
allowed
in
this
version
of
JSON-LD.
<del class="diff-old">If
a
list
of
lists
is
detected,
a
JSON-LD
processor
will
throw
an
exception.
</del>
This
decision
was
made
due
to
the
extreme
amount
of
added
complexity
when
processing
lists
of
lists.
</p>
</div>
<p>
<del class="diff-old">Similarly
to
</del>
<ins class="diff-chg">While
</ins>
<code>
@list
<del class="diff-old">,
there
exists
</del>
</code>
<ins class="diff-chg">is
used
to
describe
</ins><em><ins class="diff-chg">
ordered
lists
</ins></em>,
the
<del class="diff-old">keyword
</del>
<code>
@set
</code>
<ins class="diff-new">keyword
is
used
</ins>
to
describe
<em>
unordered
<del class="diff-old">sets.
While
its
</del>
<ins class="diff-chg">sets
</ins></em>.<ins class="diff-chg">
The
</ins>
use
<ins class="diff-new">of
</ins><code><ins class="diff-new">
@set
</ins></code>
in
the
body
of
a
JSON-LD
document
<del class="diff-old">represents
just
syntactic
sugar
that
must
be
</del>
<ins class="diff-chg">is
</ins>
optimized
away
when
processing
the
document,
<ins class="diff-new">as
</ins>
it
is
<del class="diff-old">very
</del>
<ins class="diff-chg">just
syntactic
sugar.
However,
</ins><code><ins class="diff-chg">
@set
</ins></code><ins class="diff-chg">
is
</ins>
helpful
when
used
within
the
context
of
a
document.
Values
of
terms
associated
with
a
<code>
@set
</code>
or
<code>
@list
</code>
container
are
always
represented
in
the
form
of
an
<a class="tref internalDFN" title="array" href="#dfn-array">
array
<del class="diff-old">-
</del>
</a>,
even
if
there
is
just
a
single
value
that
would
otherwise
be
optimized
to
a
non-array
form
in
<del class="diff-old">a
compacted
document
.
</del>
<ins class="diff-chg">compact
form
(see
</ins><a class="sectionRef sec-ref" href="#compact-document-form"><ins class="diff-chg">
section
6.18
Compact
Document
Form
</ins></a><ins class="diff-chg">
).
</ins>
This
makes
post-processing
of
<del class="diff-old">the
data
</del>
<ins class="diff-chg">JSON-LD
documents
</ins>
easier
as
the
data
is
always
in
array
form,
even
if
the
array
only
contains
a
single
value.
</p>
</div>
<div class="informative section" id="reverse-properties">
<h3>
<del class="diff-old">Note
</del>
<span class="secno">
<ins class="diff-chg">6.12
</ins>
</span>
<ins class="diff-new">Reverse
Properties
</ins></h3><p>
<em>
<ins class="diff-new">This
section
is
non-normative.
</ins></em></p><div class="issue atrisk"><div class="issue-title"><span><ins class="diff-new">
Feature
at
Risk
2
</ins></span>:<ins class="diff-new">
Reverse
properties
</ins>
</div>
<del class="diff-old">The
use
of
@container
in
</del>
<div class="atrisk">
<p class="atrisk-head">
<ins class="diff-chg">Note:
This
feature
is
</ins><a href="http://www.w3.org/2005/10/Process-20051014/tr#cfi"><ins class="diff-chg">
&quot;at
risk&quot;
</ins></a><ins class="diff-chg">
and
may
be
removed
from
this
specification
based
on
feedback.
Please
send
feedback
to
</ins><a href="mailto:public-rdf-comments@w3.org"><ins class="diff-chg">
public-rdf-comments@w3.org
</ins></a>.<ins class="diff-chg">
For
</ins>
the
<del class="diff-old">body
of
a
</del>
<ins class="diff-chg">current
status
see
</ins><a href="http://www.w3.org/2011/rdf-wg/wiki/JSON-LD_Features_at_Risk"><ins class="diff-chg">
features
&quot;at
risk&quot;
in
</ins>
JSON-LD
<del class="diff-old">document,
i.e.,
outside
@context
must
</del>
<ins class="diff-chg">1.0
</ins></a></p><p><ins class="diff-chg">
Reverse
properties
might
</ins>
be
<del class="diff-old">ignored
by
</del>
<ins class="diff-chg">removed
from
</ins>
JSON-LD
<del class="diff-old">processors.
</del>
<ins class="diff-chg">1.0
if
implementation
experience
reveals
problems
with
supporting
this
feature.
</ins>
</p>
</div>
<del class="diff-old">4.9
Embedding
</del>
</div>
<p>
<del class="diff-old">Object
embedding
is
a
</del>
JSON-LD
<del class="diff-old">feature
</del>
<ins class="diff-chg">serializes
directed
</ins><a class="tref internalDFN" title="json-ld-graph" href="#dfn-json-ld-graph"><ins class="diff-chg">
graphs
</ins></a>.<ins class="diff-chg">
That
means
</ins>
that
<del class="diff-old">allows
an
author
to
use
subject
definitions
as
</del>
<ins class="diff-chg">every
</ins>
<a class="tref internalDFN" title="property" href="#dfn-property">
property
</a>
<del class="diff-old">values.
This
</del>
<ins class="diff-chg">points
from
a
</ins><a class="tref internalDFN" title="node" href="#dfn-node"><ins class="diff-chg">
node
</ins></a><ins class="diff-chg">
to
another
</ins><a class="tref internalDFN" title="node" href="#dfn-node"><ins class="diff-chg">
node
</ins></a><ins class="diff-chg">
or
</ins><a class="tref internalDFN" title="json-ld-value" href="#dfn-json-ld-value"><ins class="diff-chg">
value
</ins></a>.<ins class="diff-chg">
However,
in
some
cases,
it
</ins>
is
<ins class="diff-new">desirable
to
serialize
in
the
reverse
direction.
Consider
for
example
the
case
where
</ins>
a
<del class="diff-old">commonly
</del>
<ins class="diff-chg">person
and
its
children
should
be
described
in
a
document.
If
the
</ins>
used
<del class="diff-old">mechanism
for
creating
</del>
<ins class="diff-chg">vocabulary
does
not
provide
</ins>
a
<del class="diff-old">parent-child
relationship
between
two
subject
</del>
<em>
<ins class="diff-chg">children
</ins></em><a class="tref internalDFN" title="property" href="#dfn-property"><ins class="diff-chg">
property
</ins>
</a>
<del class="diff-old">s.
The
example
shows
two
subjects
related
by
</del>
<ins class="diff-chg">but
just
</ins>
a
<em>
<ins class="diff-new">parent
</ins></em><a class="tref internalDFN" title="property" href="#dfn-property">
property
<del class="diff-old">from
</del>
</a>,
<ins class="diff-chg">every
</ins><a class="tref internalDFN" title="node" href="#dfn-node"><ins class="diff-chg">
node
</ins></a><ins class="diff-chg">
representing
a
child
would
have
to
be
expressed
with
a
</ins><a class="tref internalDFN" title="property" href="#dfn-property"><ins class="diff-chg">
property
</ins></a><ins class="diff-chg">
pointing
to
</ins>
the
<del class="diff-old">first
subject:
</del>
<ins class="diff-chg">parent
as
in
the
following
example.
</ins>
</p>
<del class="diff-old">  {
...
  &quot;name&quot;: &quot;Manu Sporny&quot;,
  &quot;&quot;:
</del>
  <div class="example"><div class="example-title"><span>Example 46</span>: A document with children linking to their parent</div><pre class="example">[
  {
<del class="diff-old">    &quot;&quot;,
    &quot;&quot;,
</del>
    <span class="diff">&quot;@id&quot;: &quot;#homer&quot;</span>,
<ins class="diff-chg">    &quot;http://example.com/vocab#name&quot;: &quot;Homer&quot;
  },
  {
    &quot;@id&quot;: &quot;#bart&quot;,
    &quot;http://example.com/vocab#name&quot;: &quot;Bart&quot;,
</ins>    <span class="diff">&quot;http://example.com/vocab#parent&quot;: { &quot;@id&quot;: &quot;#homer&quot; }</span><ins class="diff-chg">
  },
  {
    &quot;@id&quot;: &quot;#lisa&quot;,
    &quot;http://example.com/vocab#name&quot;: &quot;Lisa&quot;,
</ins>    <span class="diff">&quot;http://example.com/vocab#parent&quot;: { &quot;@id&quot;: &quot;#homer&quot; }</span>
  }
<del class="diff-old">...
}
</del>
<ins class="diff-chg">]
</ins>
</pre>
</div>
<p>
<del class="diff-old">A
subject
definition
,
like
the
one
used
above,
may
be
used
in
any
value
position
in
the
body
of
a
JSON-LD
document.
</del>
<ins class="diff-chg">Expressing
such
data
is
much
simpler
by
using
JSON-LD's
</ins><code><ins class="diff-chg">
@reverse
</ins></code><a class="tref internalDFN" title="keyword" href="#dfn-keyword"><ins class="diff-chg">
keyword
</ins></a>:
</p>
  <div class="example"><div class="example-title"><span>Example 47</span>: A person and its children using a reverse property</div><pre class="example">{
<ins class="diff-chg">  &quot;@id&quot;: &quot;#homer&quot;,
  &quot;http://example.com/vocab#name&quot;: &quot;Homer&quot;,
</ins>  <span class="diff">&quot;@reverse&quot;</span>: {    <span class="diff">&quot;http://example.com/vocab#parent&quot;</span>: [<ins class="diff-chg">
      {
        &quot;@id&quot;: &quot;#bart&quot;,
        &quot;http://example.com/vocab#name&quot;: &quot;Bart&quot;
      },
      {
        &quot;@id&quot;: &quot;#lisa&quot;,
        &quot;http://example.com/vocab#name&quot;: &quot;Lisa&quot;
      }
    ]
  }
}
</ins></pre>
<del class="diff-old">4.10
Named
Graphs
</del>
</div>
<p>
The
<code>
<del class="diff-old">@graph
</del>
<ins class="diff-chg">@reverse
</ins>
</code>
<a class="tref internalDFN" title="keyword" href="#dfn-keyword">
keyword
</a>
<del class="diff-old">is
used
to
express
a
set
of
JSON-LD
subject
definition
s
that
may
not
be
directly
related
to
one
another
through
a
property.
The
mechanism
may
</del>
<ins class="diff-chg">can
</ins>
also
be
used
<del class="diff-old">where
embedding
</del>
<ins class="diff-chg">in
</ins><a class="tref internalDFN" title="expanded-term-definition" href="#dfn-expanded-term-definition"><ins class="diff-chg">
expanded
term
definitions
</ins>
</a>
<del class="diff-old">is
not
desirable
</del>
to
<ins class="diff-new">create
reverse
properties
as
shown
in
</ins>
the
<del class="diff-old">application.
For
</del>
<ins class="diff-chg">following
</ins>
example:
</p>
<del class="diff-old">  {
  &quot;@context&quot;: ...,
  &quot;&quot;:
  [
</del>
  <div class="example"><div class="example-title"><span>Example 48</span>: Using @reverse to define reverse properties</div><pre class="example">{
<ins class="diff-chg">  &quot;@context&quot;: {
    &quot;name&quot;: &quot;http://example.com/vocab#name&quot;,
</ins>    <span class="diff">&quot;children&quot;: { &quot;@reverse&quot;: &quot;http://example.com/vocab#parent&quot; }</span><ins class="diff-chg">
  },
  &quot;@id&quot;: &quot;#homer&quot;,
  &quot;name&quot;: &quot;Homer&quot;,
</ins>  <span class="diff">&quot;children&quot;</span>: [
    {
<del class="diff-old">      &quot;@id&quot;: &quot;http://manu.sporny.org/i/public&quot;,
      &quot;@type&quot;: &quot;foaf:Person&quot;,
      &quot;name&quot;: &quot;Manu Sporny&quot;,
      &quot;knows&quot;: &quot;http://greggkellogg.net/foaf#me&quot;
</del>
<ins class="diff-chg">      &quot;@id&quot;: &quot;#bart&quot;,
      &quot;name&quot;: &quot;Bart&quot;
</ins>
    },
    {
<del class="diff-old">      &quot;@id&quot;: &quot;http://greggkellogg.net/foaf#me&quot;,
      &quot;@type&quot;: &quot;foaf:Person&quot;,
      &quot;name&quot;: &quot;Gregg Kellogg&quot;,
      &quot;knows&quot;: &quot;http://manu.sporny.org/i/public&quot;
</del>
<ins class="diff-chg">      &quot;@id&quot;: &quot;#lisa&quot;,
      &quot;name&quot;: &quot;Lisa&quot;
</ins>
    }
  ]
}
</pre>
</div>
</div>
<div class="informative section" id="named-graphs">
<h3>
<span class="secno">
<ins class="diff-new">6.13
</ins></span><ins class="diff-new">
Named
Graphs
</ins></h3>
<p>
<del class="diff-old">In
this
case,
embedding
doesn't
work
as
each
subject
definition
references
the
other.
Using
the
@graph
keyword
allows
multiple
resources
to
be
defined
within
an
array
,
and
allows
the
use
of
a
shared
context
.
When
used
in
a
JSON
object
that
is
not
otherwise
a
subject
definition
,
this
describes
resources
in
the
</del>
<em>
<del class="diff-old">default
graph
.
</del>
This
<ins class="diff-new">section
</ins>
is
<del class="diff-old">equivalent
to
using
multiple
subject
definitions
in
array
and
defining
the
@context
within
each
subject
definition
:

  {

    &quot;@id&quot;: &quot;http://manu.sporny.org/i/public&quot;,
    &quot;@type&quot;: &quot;foaf:Person&quot;,
    &quot;name&quot;: &quot;Manu Sporny&quot;,
    &quot;knows&quot;: &quot;http://greggkellogg.net/foaf#me&quot;
  },
  {

    &quot;@id&quot;: &quot;http://greggkellogg.net/foaf#me&quot;,
    &quot;@type&quot;: &quot;foaf:Person&quot;,
    &quot;name&quot;: &quot;Gregg Kellogg&quot;,
    &quot;knows&quot;: &quot;http://manu.sporny.org/i/public&quot;
  }
]
</del>
<ins class="diff-chg">non-normative.
</ins></em>
</p>
<p>
<del class="diff-old">JSON-LD
allows
you
</del>
<ins class="diff-chg">At
times,
it
is
necessary
</ins>
to
<del class="diff-old">name
things
on
the
Web
</del>
<ins class="diff-chg">make
statements
about
a
</ins><a class="tref internalDFN" title="json-ld-graph" href="#dfn-json-ld-graph"><ins class="diff-chg">
JSON-LD
graph
</ins></a><ins class="diff-chg">
itself,
rather
than
just
a
single
</ins><a class="tref internalDFN" title="node" href="#dfn-node"><ins class="diff-chg">
node
</ins></a>.<ins class="diff-chg">
This
can
be
done
</ins>
by
<del class="diff-old">assigning
an
</del>
<ins class="diff-chg">grouping
a
set
of
</ins><a class="tref internalDFN" title="node" href="#dfn-node"><ins class="diff-chg">
nodes
</ins></a><ins class="diff-chg">
using
the
</ins>
<code>
<del class="diff-old">@id
</del>
<ins class="diff-chg">@graph
</ins>
</code>
<del class="diff-old">to
them,
which
is
typically
an
IRI
</del>
<a class="tref internalDFN" title="keyword" href="#dfn-keyword">
<ins class="diff-chg">keyword
</ins>
</a>.
<del class="diff-old">This
notion
extends
to
the
ability
to
identify
graphs
in
the
same
manner.
</del>
A
developer
may
<ins class="diff-new">also
</ins>
name
data
expressed
using
the
<code>
@graph
</code>
<a class="tref internalDFN" title="keyword" href="#dfn-keyword">
keyword
</a>
by
pairing
it
with
an
<code>
@id
</code>
<a class="tref internalDFN" title="keyword" href="#dfn-keyword">
keyword
<del class="diff-old">.
This
enables
the
developer
to
make
statements
about
a
linked
data
graph
</del>
</a>
<del class="diff-old">itself,
rather
than
just
a
single
subject
.
</del>
<ins class="diff-chg">as
shown
in
the
following
example:
</ins>
</p>
<del class="diff-old">  {
  &quot;@context&quot;: ...,
</del>
  <div class="example"><div class="example-title"><span>Example 49</span>: Identifying and making statements about a graph</div><pre class="example">{
<ins class="diff-chg">  &quot;@context&quot;: {
    &quot;generatedAt&quot;: {
      &quot;@id&quot;: &quot;http://www.w3.org/ns/prov#generatedAtTime&quot;,
      &quot;@type&quot;: &quot;http://www.w3.org/2001/XMLSchema#date&quot;
    },
    &quot;Person&quot;: &quot;http://xmlns.com/foaf/0.1/Person&quot;,
    &quot;name&quot;: &quot;http://xmlns.com/foaf/0.1/name&quot;,
    &quot;knows&quot;: &quot;http://xmlns.com/foaf/0.1/knows&quot;
  },
</ins>
  <span class="diff">&quot;@id&quot;: &quot;http://example.org/graphs/73&quot;,
<del class="diff-old">  &quot;asOf&quot;: { &quot;@value&quot;: &quot;2012-04-09&quot;, &quot;@type&quot;: &quot;xsd:date&quot; },
</del>
<ins class="diff-chg">  &quot;generatedAt&quot;: &quot;2012-04-09&quot;,
</ins>
  &quot;@graph&quot;:</span>
  [
    {
      &quot;@id&quot;: &quot;http://manu.sporny.org/i/public&quot;,
<del class="diff-old">      &quot;@type&quot;: &quot;foaf:Person&quot;,
</del>
<ins class="diff-chg">      &quot;@type&quot;: &quot;Person&quot;,
</ins>
      &quot;name&quot;: &quot;Manu Sporny&quot;,
      &quot;knows&quot;: &quot;http://greggkellogg.net/foaf#me&quot;
    },
    {
      &quot;@id&quot;: &quot;http://greggkellogg.net/foaf#me&quot;,
<del class="diff-old">      &quot;@type&quot;: &quot;foaf:Person&quot;,
</del>
<ins class="diff-chg">      &quot;@type&quot;: &quot;Person&quot;,
</ins>
      &quot;name&quot;: &quot;Gregg Kellogg&quot;,
      &quot;knows&quot;: &quot;http://manu.sporny.org/i/public&quot;
    }
  ]
}
</pre>
</div>
<p>
The
example
above
expresses
a
<a class="tref internalDFN" title="named-graph" href="#dfn-named-graph">
named
<del class="diff-old">linked
data
</del>
graph
</a>
that
is
identified
by
the
<a class="tref internalDFN" title="iri" href="#dfn-iri">
<abbr title="Internationalized Resource Identifier">
IRI
</abbr>
</a>
<code>
http://example.org/graphs/73
</code>.
That
graph
is
composed
of
the
statements
about
Manu
and
Gregg.
<del class="diff-old">Meta-data
</del>
<ins class="diff-chg">Metadata
</ins>
about
the
graph
itself
is
<del class="diff-old">also
</del>
expressed
via
the
<code>
<del class="diff-old">asOf
</del>
<ins class="diff-chg">generatedAt
</ins>
</code>
property,
which
specifies
when
the
<del class="diff-old">information
</del>
<ins class="diff-chg">graph
</ins>
was
<del class="diff-old">retrieved
from
</del>
<ins class="diff-chg">generated.
An
alternative
view
of
</ins>
the
<del class="diff-old">Web.
</del>
<ins class="diff-chg">information
above
is
represented
in
table
form
below:
</ins>
</p>
<table class="example">
<thead>
<tr>
<th>
<ins class="diff-chg">Graph
</ins></th><th><ins class="diff-chg">
Subject
</ins></th><th><ins class="diff-chg">
Property
</ins></th><th><ins class="diff-chg">
Value
</ins></th><th><ins class="diff-chg">
Value
Type
</ins></th></tr>
<del class="diff-old">Issue
3
</del>
</thead>
<tbody>
<tr>
<td>
</td>
<td>
<ins class="diff-chg">http://example.org/graphs/73
</ins></td><td><ins class="diff-chg">
http://www.w3.org/ns/prov#generatedAtTime
</ins></td><td><ins class="diff-chg">
2012-04-09
</ins></td><td><ins class="diff-chg">
http://www.w3.org/2001/XMLSchema#date
</ins></td></tr><tr><td><ins class="diff-chg">
http://example.org/graphs/73
</ins></td><td><ins class="diff-chg">
http://manu.sporny.org/i/public
</ins></td><td><ins class="diff-chg">
http://www.w3.org/2001/XMLSchema#type
</ins></td><td><ins class="diff-chg">
http://xmlns.com/foaf/0.1/Person
</ins></td><td>
</td>
</tr>
<tr>
<td>
<ins class="diff-chg">http://example.org/graphs/73
</ins></td><td><ins class="diff-chg">
http://manu.sporny.org/i/public
</ins></td><td><ins class="diff-chg">
http://xmlns.com/foaf/0.1/name
</ins></td><td><ins class="diff-chg">
Manu
Sporny
</ins></td><td>
<del class="diff-old">These
examples
could
all
have
TriG
definitions
</del>
</td>
</tr>
<tr>
<td>
<ins class="diff-chg">http://example.org/graphs/73
</ins></td><td><ins class="diff-chg">
http://manu.sporny.org/i/public
</ins></td><td><ins class="diff-chg">
http://xmlns.com/foaf/0.1/knows
</ins></td><td><ins class="diff-chg">
http://greggkellogg.net/foaf#me
</ins></td><td></td></tr><tr><td><ins class="diff-chg">
http://example.org/graphs/73
</ins></td><td><ins class="diff-chg">
http://greggkellogg.net/foaf#me
</ins></td><td><ins class="diff-chg">
http://www.w3.org/2001/XMLSchema#type
</ins></td><td><ins class="diff-chg">
http://xmlns.com/foaf/0.1/Person
</ins></td><td></td></tr><tr><td><ins class="diff-chg">
http://example.org/graphs/73
</ins></td><td><ins class="diff-chg">
http://greggkellogg.net/foaf#me
</ins></td><td><ins class="diff-chg">
http://xmlns.com/foaf/0.1/name
</ins></td><td><ins class="diff-chg">
Gregg
Kellogg
</ins></td><td></td></tr><tr><td><ins class="diff-chg">
http://example.org/graphs/73
</ins></td><td><ins class="diff-chg">
http://greggkellogg.net/foaf#me
</ins></td><td><ins class="diff-chg">
http://xmlns.com/foaf/0.1/knows
</ins></td><td><ins class="diff-chg">
http://manu.sporny.org/i/public
</ins></td><td></td></tr></tbody></table><p><ins class="diff-chg">
When
a
JSON-LD
document's
top-level
structure
is
an
</ins><a class="tref internalDFN" title="json-object" href="#dfn-json-object"><ins class="diff-chg">
object
</ins></a><ins class="diff-chg">
that
contains
no
other
</ins><a class="tref internalDFN" title="property" href="#dfn-property"><ins class="diff-chg">
properties
</ins></a><ins class="diff-chg">
than
</ins><code><ins class="diff-chg">
@graph
</ins></code><ins class="diff-chg">
and
optionally
</ins><code><ins class="diff-chg">
@context
</ins></code><ins class="diff-chg">
(properties
that
are
not
mapped
to
an
</ins><a class="tref internalDFN" title="iri" href="#dfn-iri"><abbr title="Internationalized Resource Identifier"><ins class="diff-chg">
IRI
</ins></abbr></a><ins class="diff-chg">
or
a
</ins><a class="tref internalDFN" title="keyword" href="#dfn-keyword"><ins class="diff-chg">
keyword
</ins></a><ins class="diff-chg">
are
ignored),
</ins><code><ins class="diff-chg">
@graph
</ins></code><ins class="diff-chg">
is
considered
to
express
the
otherwise
implicit
</ins><a class="tref internalDFN" title="default-graph" href="#dfn-default-graph"><ins class="diff-chg">
default
graph
</ins></a>.<ins class="diff-chg">
This
mechanism
can
be
useful
when
a
number
</ins>
of
<del class="diff-old">their
RDF
results,
but
</del>
<a class="tref internalDFN" title="node" href="#dfn-node">
<ins class="diff-chg">nodes
</ins></a><ins class="diff-chg">
exist
at
the
document's
top
level
</ins>
that
<del class="diff-old">would
involve
adding
RDF
earlier
</del>
<ins class="diff-chg">share
the
same
</ins><a class="tref internalDFN" title="context" href="#dfn-context"><ins class="diff-chg">
context
</ins></a>,<ins class="diff-chg">
which
is,
e.g.,
the
case
when
a
document
is
</ins><a href="#flattened-document-form"><ins class="diff-chg">
flattened
</ins></a>.<ins class="diff-chg">
The
</ins><code><ins class="diff-chg">
@graph
</ins></code><ins class="diff-chg">
keyword
collects
such
nodes
</ins>
in
<ins class="diff-new">an
</ins><a class="tref internalDFN" title="array" href="#dfn-array"><ins class="diff-new">
array
</ins></a><ins class="diff-new">
and
allows
</ins>
the
<del class="diff-old">document.
</del>
<ins class="diff-chg">use
of
a
shared
context.
</ins></p>  <div class="example"><div class="example-title"><span>Example 50</span>: Using @graph to explicitly express the default graph</div><pre class="example">{<ins class="diff-chg">
  &quot;@context&quot;: ...,
  &quot;<span class="diff">@graph</span>&quot;:
  [
    {
      &quot;@id&quot;: &quot;http://manu.sporny.org/i/public&quot;,
      &quot;@type&quot;: &quot;foaf:Person&quot;,
      &quot;name&quot;: &quot;Manu Sporny&quot;,
      &quot;knows&quot;: &quot;http://greggkellogg.net/foaf#me&quot;
    },
    {
      &quot;@id&quot;: &quot;http://greggkellogg.net/foaf#me&quot;,
      &quot;@type&quot;: &quot;foaf:Person&quot;,
      &quot;name&quot;: &quot;Gregg Kellogg&quot;,
      &quot;knows&quot;: &quot;http://manu.sporny.org/i/public&quot;
    }
  ]
}
</ins></pre></div><p><ins class="diff-chg">
In
this
case,
embedding
doesn't
work
as
each
</ins><a class="tref internalDFN" title="node-object" href="#dfn-node-object"><ins class="diff-chg">
node
object
</ins></a><ins class="diff-chg">
references
the
other.
This
is
equivalent
to
using
multiple
</ins><a class="tref internalDFN" title="node-object" href="#dfn-node-object"><ins class="diff-chg">
node
objects
</ins></a><ins class="diff-chg">
in
array
and
defining
the
</ins><code><ins class="diff-chg">
@context
</ins></code><ins class="diff-chg">
within
each
</ins><a class="tref internalDFN" title="node-object" href="#dfn-node-object"><ins class="diff-chg">
node
object
</ins></a>:
</p>
  <div class="example"><div class="example-title"><span>Example 51</span>: Context needs to be duplicated if @graph is not used</div><pre class="example">[
<ins class="diff-new">  {
</ins>    <span class="diff">&quot;@context&quot;: ...,</span><ins class="diff-new">
    &quot;@id&quot;: &quot;http://manu.sporny.org/i/public&quot;,
    &quot;@type&quot;: &quot;foaf:Person&quot;,
    &quot;name&quot;: &quot;Manu Sporny&quot;,
    &quot;knows&quot;: &quot;http://greggkellogg.net/foaf#me&quot;
  },
  {
</ins>    <span class="diff">&quot;@context&quot;: ...,</span><ins class="diff-new">
    &quot;@id&quot;: &quot;http://greggkellogg.net/foaf#me&quot;,
    &quot;@type&quot;: &quot;foaf:Person&quot;,
    &quot;name&quot;: &quot;Gregg Kellogg&quot;,
    &quot;knows&quot;: &quot;http://manu.sporny.org/i/public&quot;
  }
]
</ins></pre>
</div>
</div>
<div class="informative section" id="identifying-blank-nodes">
<h3>
<span class="secno">
<del class="diff-old">4.11
</del>
<ins class="diff-chg">6.14
</ins>
</span>
Identifying
<del class="diff-old">Unlabeled
</del>
<ins class="diff-chg">Blank
</ins>
Nodes
</h3>
<p>
<em>
<ins class="diff-new">This
section
is
non-normative.
</ins></em></p>
<p>
At
times,
it
becomes
necessary
to
be
able
to
express
information
without
being
able
to
<del class="diff-old">specify
</del>
<ins class="diff-chg">uniquely
identify
</ins>
the
<del class="diff-old">subject.
Typically,
this
</del>
<a class="tref internalDFN" title="node" href="#dfn-node">
<ins class="diff-chg">node
</ins></a><ins class="diff-chg">
with
an
</ins><a class="tref internalDFN" title="iri" href="#dfn-iri"><abbr title="Internationalized Resource Identifier"><ins class="diff-chg">
IRI
</ins></abbr></a>.<ins class="diff-chg">
This
</ins>
type
of
node
is
called
<del class="diff-old">an
unlabeled
node
or
</del>
a
<a class="tref internalDFN" title="blank-node" href="#dfn-blank-node">
blank
node
<del class="diff-old">(see
[
RDF-CONCEPTS
]
Section
3.4:
Blank
Nodes
).
In
JSON-LD,
unlabeled
node
identifiers
are
automatically
created
if
a
subject
is
</del>
</a>.
<ins class="diff-chg">JSON-LD
does
</ins>
not
<del class="diff-old">specified
</del>
<ins class="diff-chg">require
all
nodes
to
be
identified
</ins>
using
<del class="diff-old">the
</del>
<code>
@id
<del class="diff-old">keyword
.
</del>
</code>.
However,
<del class="diff-old">authors
</del>
<ins class="diff-chg">some
graph
topologies
</ins>
may
<del class="diff-old">provide
</del>
<ins class="diff-chg">require
</ins>
identifiers
<del class="diff-old">for
unlabeled
nodes
by
</del>
<ins class="diff-chg">to
be
serializable.
Graphs
containing
loops,
e.g.,
cannot
be
serialized
</ins>
using
<ins class="diff-new">embedding
alone,
</ins><code><ins class="diff-new">
@id
</ins></code><ins class="diff-new">
must
be
used
to
connect
</ins>
the
<del class="diff-old">special
</del>
<ins class="diff-chg">nodes.
In
these
situations,
one
can
use
</ins><a class="tref internalDFN" title="blank-node-identifier" href="#dfn-blank-node-identifier"><ins class="diff-chg">
blank
node
identifiers
</ins></a>,<ins class="diff-chg">
which
look
like
</ins><a class="tref internalDFN" title="iri" href="#dfn-iri"><ins class="diff-chg">
IRIs
</ins></a><ins class="diff-chg">
using
an
underscore
(
</ins>
<code>
_
</code>
<del class="diff-old">(underscore)
prefix
.
</del>
<ins class="diff-chg">)
as
scheme.
</ins>
This
allows
one
to
reference
the
node
locally
within
the
document,
but
makes
it
impossible
to
reference
the
node
from
an
external
document.
The
<del class="diff-old">unlabeled
</del>
<a class="tref internalDFN" title="blank-node-identifier" href="#dfn-blank-node-identifier">
<ins class="diff-chg">blank
</ins>
node
identifier
</a>
is
scoped
to
the
document
in
which
it
is
used.
</p>
<del class="diff-old">{
...
  &quot;@id&quot;: &quot;&quot;,
...
</del>
  <div class="example"><div class="example-title"><span>Example 52</span>: Specifying a local blank node identifier</div><pre class="example">{
<ins class="diff-chg">   ...
   &quot;@id&quot;: &quot;<span class="diff">_:n1</span>&quot;,
   &quot;name&quot;: &quot;Secret Agent 1&quot;,
   &quot;knows&quot;:
     {
       &quot;name&quot;: &quot;Secret Agent 2&quot;,
       &quot;knows&quot;: { &quot;@id&quot;: &quot;<span class="diff">_:n1</span>&quot; }
     }
</ins>
}
</pre>
</div>
<p>
The
example
above
<del class="diff-old">would
set
the
subject
</del>
<ins class="diff-chg">contains
information
about
</ins>
to
<del class="diff-old">_:foo
,
which
</del>
<ins class="diff-chg">secrete
agents
that
cannot
be
identified
with
an
</ins><a class="tref internalDFN" title="iri" href="#dfn-iri"><abbr title="Internationalized Resource Identifier"><ins class="diff-chg">
IRI
</ins></abbr></a>.<ins class="diff-chg">
While
expressing
that
</ins><em><ins class="diff-chg">
agent
1
</ins></em><ins class="diff-chg">
knows
</ins><em><ins class="diff-chg">
agent
2
</ins></em><ins class="diff-chg">
is
possible
without
using
</ins><a class="tref internalDFN" title="blank-node-identifier" href="#dfn-blank-node-identifier"><ins class="diff-chg">
blank
node
identifiers
</ins></a>,<ins class="diff-chg">
it
is
necessary
assign
</ins><em><ins class="diff-chg">
agent
1
</ins></em><ins class="diff-chg">
an
identifier
so
that
it
</ins>
can
<del class="diff-old">then
</del>
be
<del class="diff-old">used
elsewhere
in
the
JSON-LD
document
to
refer
back
to
the
unlabeled
</del>
<ins class="diff-chg">referenced
from
</ins><em><ins class="diff-chg">
agent
2
</ins></em>.</p><p><ins class="diff-chg">
It
is
worth
nothing
that
blank
</ins>
node
<del class="diff-old">.
</del>
<ins class="diff-chg">identifiers
may
be
relabeled
during
processing.
</ins>
If
a
developer
finds
that
they
refer
to
the
<del class="diff-old">unlabeled
</del>
<a class="tref internalDFN" title="blank-node" href="#dfn-blank-node">
<ins class="diff-chg">blank
</ins>
node
</a>
more
than
once,
they
should
consider
naming
the
node
using
a
<del class="diff-old">de-referenceable
</del>
<ins class="diff-chg">dereferenceable
</ins>
<a class="tref internalDFN" title="iri" href="#dfn-iri">
<abbr title="Internationalized Resource Identifier">
IRI
</abbr>
</a>
so
that
it
can
<ins class="diff-new">also
</ins>
be
referenced
<del class="diff-old">also
</del>
from
other
documents.
</p>
</div>
<div class="informative section" id="aliasing-keywords">
<h3>
<span class="secno">
<del class="diff-old">4.12
</del>
<ins class="diff-chg">6.15
</ins>
</span>
Aliasing
Keywords
</h3>
<p>
<em>
<ins class="diff-new">This
section
is
non-normative.
</ins></em></p>
<p>
Each
of
the
JSON-LD
<a class="tref internalDFN" title="keyword" href="#dfn-keyword">
keywords
</a>,
except
for
<code>
@context
</code>,
may
be
aliased
to
application-specific
keywords.
This
feature
allows
legacy
JSON
content
to
be
utilized
by
JSON-LD
by
re-using
JSON
keys
that
already
exist
in
legacy
documents.
This
feature
also
allows
developers
to
design
domain-specific
implementations
using
only
the
JSON-LD
<a class="tref internalDFN" title="context" href="#dfn-context">
context
</a>.
</p>
<del class="diff-old">{
</del>
  <div class="example"><div class="example-title"><span>Example 53</span>: Aliasing keywords</div><pre class="example">{
  &quot;@context&quot;:
  {
     <span class="diff">&quot;url&quot;: &quot;@id&quot;</span>,
     <span class="diff">&quot;a&quot;: &quot;@type&quot;</span>,
<del class="diff-old">     &quot;name&quot;: &quot;http://schema.org/name&quot;
</del>
<ins class="diff-chg">     &quot;name&quot;: &quot;http://xmlns.com/foaf/0.1/name&quot;
</ins>
  },
  &quot;<span class="diff">url</span>&quot;: &quot;http://example.com/about#gregg&quot;,
<del class="diff-old">  &quot;&quot;: &quot;http://schema.org/Person&quot;,
</del>
<ins class="diff-chg">  &quot;<span class="diff">a</span>&quot;: &quot;http://xmlns.com/foaf/0.1/Person&quot;,
</ins>
  &quot;name&quot;: &quot;Gregg Kellogg&quot;
}
</pre>
</div>
<p>
In
the
example
above,
the
<code>
@id
</code>
and
<code>
@type
</code>
<a class="tref internalDFN" title="keyword" href="#dfn-keyword">
keywords
</a>
have
been
given
the
aliases
<strong>
url
</strong>
and
<strong>
a
</strong>,
respectively.
</p>
<p>
<ins class="diff-new">Since
keywords
cannot
be
redefined,
they
can
also
not
be
aliased
to
other
keywords.
</ins></p>
</div>
<div class="informative section" id="data-indexing">
<h3>
<span class="secno">
<del class="diff-old">4.13
</del>
<ins class="diff-chg">6.16
</ins></span><ins class="diff-chg">
Data
Indexing
</ins></h3><p><em><ins class="diff-chg">
This
section
is
non-normative.
</ins></em></p><p><ins class="diff-chg">
Databases
are
typically
used
to
make
access
to
data
more
efficient.
Developers
often
extend
this
sort
of
functionality
into
their
application
data
to
deliver
similar
performance
gains.
Often
this
data
does
not
have
any
meaning
from
a
Linked
Data
standpoint,
but
is
still
useful
for
an
application.
</ins></p><p><ins class="diff-chg">
JSON-LD
introduces
the
notion
of
</ins><a class="tref internalDFN" title="index-map" href="#dfn-index-map"><ins class="diff-chg">
index
maps
</ins></a><ins class="diff-chg">
that
can
be
used
to
structure
data
into
a
form
that
is
more
efficient
to
access.
The
data
indexing
feature
allows
an
author
to
structure
data
using
a
simple
key-value
map
where
the
keys
do
not
map
to
</ins><a class="tref internalDFN" title="iri" href="#dfn-iri"><ins class="diff-chg">
IRIs
</ins></a>.<ins class="diff-chg">
This
enables
direct
access
to
data
instead
of
having
to
scan
an
array
in
search
of
a
specific
item.
In
JSON-LD
such
data
can
be
specified
by
associating
the
</ins><code><ins class="diff-chg">
@index
</ins></code><a class="tref internalDFN" title="keyword" href="#dfn-keyword"><ins class="diff-chg">
keyword
</ins></a><ins class="diff-chg">
with
a
</ins><code><ins class="diff-chg">
@container
</ins></code><ins class="diff-chg">
declaration
in
the
context:
</ins></p>  <div class="example"><div class="example-title"><span>Example 54</span>: Indexing data in JSON-LD</div><pre class="example">{<ins class="diff-chg">
  &quot;@context&quot;:
  {
     &quot;schema&quot;: &quot;http://schema.org/&quot;,
     &quot;name&quot;: &quot;schema:name&quot;,
     &quot;body&quot;: &quot;schema:articleBody&quot;,
     &quot;words&quot;: &quot;schema:wordCount&quot;,
     &quot;post&quot;: {
       &quot;@id&quot;: &quot;schema:blogPost&quot;,
</ins>       <span class="diff">&quot;@container&quot;: &quot;@index&quot;</span><ins class="diff-chg">
     }
  },
  &quot;@id&quot;: &quot;http://example.com/&quot;,
  &quot;@type&quot;: &quot;schema:Blog&quot;,
  &quot;name&quot;: &quot;World Financial News&quot;,
</ins>  <span class="diff">&quot;post&quot;: {<ins class="diff-chg">
     &quot;en&quot;: {
       &quot;@id&quot;: &quot;http://example.com/posts/1/en&quot;,
       &quot;body&quot;: &quot;World commodities were up today with heavy trading of crude oil...&quot;,
       &quot;words&quot;: 1539
     },
     &quot;de&quot;: {
       &quot;@id&quot;: &quot;http://example.com/posts/1/de&quot;,
       &quot;body&quot;: &quot;Die Werte an Warenbörsen stiegen im Sog eines starken Handels von Rohöl...&quot;,
       &quot;words&quot;: 1204
     }</span>
  }
}
</ins></pre></div><p><ins class="diff-chg">
In
the
example
above,
the
</ins><strong><ins class="diff-chg">
blogPost
</ins></strong><a class="tref internalDFN" title="term" href="#dfn-term"><ins class="diff-chg">
term
</ins></a><ins class="diff-chg">
has
been
marked
as
an
</ins><a class="tref internalDFN" title="index-map" href="#dfn-index-map"><ins class="diff-chg">
index
map
</ins></a>.<ins class="diff-chg">
The
</ins><strong><ins class="diff-chg">
en
</ins></strong>,<strong><ins class="diff-chg">
de
</ins></strong>,<ins class="diff-chg">
and
</ins><strong><ins class="diff-chg">
ja
</ins></strong><ins class="diff-chg">
keys
will
be
ignored
semantically,
but
preserved
syntactically,
by
the
JSON-LD
Processor.
This
allows
a
developer
to
access
the
German
version
of
the
</ins><strong><ins class="diff-chg">
blogPost
</ins></strong><ins class="diff-chg">
using
the
following
code
snippet:
</ins><code><ins class="diff-chg">
obj.blogPost.de
</ins></code>.</p><p><ins class="diff-chg">
The
interpretation
of
the
data
above
is
expressed
in
the
table
below.
Note
how
the
index
keys
do
not
appear
in
the
Linked
Data
below,
but
would
continue
to
exist
if
the
document
were
compacted
or
expanded
(see
</ins><a class="sectionRef sec-ref" href="#compact-document-form"><ins class="diff-chg">
section
6.18
Compact
Document
Form
</ins></a><ins class="diff-chg">
and
</ins><a class="sectionRef sec-ref" href="#expanded-document-form"><ins class="diff-chg">
section
6.17
Expanded
Document
Form
</ins></a><ins class="diff-chg">
)
using
a
JSON-LD
processor:
</ins></p><table class="example"><thead><tr><th><ins class="diff-chg">
Subject
</ins></th><th><ins class="diff-chg">
Property
</ins></th><th><ins class="diff-chg">
Value
</ins></th></tr></thead><tbody><tr><td><ins class="diff-chg">
http://example.com/
</ins></td><td><ins class="diff-chg">
http://www.w3.org/1999/02/22-rdf-syntax-ns#type
</ins></td><td><ins class="diff-chg">
http://schema.org/Blog
</ins></td></tr><tr><td><ins class="diff-chg">
http://example.com/
</ins></td><td><ins class="diff-chg">
http://schema.org/name
</ins></td><td><ins class="diff-chg">
World
Financial
News
</ins></td></tr><tr><td><ins class="diff-chg">
http://example.com/
</ins></td><td><ins class="diff-chg">
http://schema.org/blogPost
</ins></td><td><ins class="diff-chg">
http://example.com/posts/1/en
</ins></td></tr><tr><td><ins class="diff-chg">
http://example.com/
</ins></td><td><ins class="diff-chg">
http://schema.org/blogPost
</ins></td><td><ins class="diff-chg">
http://example.com/posts/1/de
</ins></td></tr><tr><td><ins class="diff-chg">
http://example.com/posts/1/en
</ins></td><td><ins class="diff-chg">
http://schema.org/articleBody
</ins></td><td><ins class="diff-chg">
World
commodities
were
up
today
with
heavy
trading
of
crude
oil...
</ins></td></tr><tr><td><ins class="diff-chg">
http://example.com/posts/1/en
</ins></td><td><ins class="diff-chg">
http://schema.org/wordCount
</ins></td><td><ins class="diff-chg">
1539
</ins></td></tr><tr><td><ins class="diff-chg">
http://example.com/posts/1/de
</ins></td><td><ins class="diff-chg">
http://schema.org/articleBody
</ins></td><td><ins class="diff-chg">
Die
Werte
an
Warenbörsen
stiegen
im
Sog
eines
starken
Handels
von
Rohöl...
</ins></td></tr><tr><td><ins class="diff-chg">
http://example.com/posts/1/de
</ins></td><td><ins class="diff-chg">
http://schema.org/wordCount
</ins></td><td><ins class="diff-chg">
1204
</ins></td></tr></tbody></table></div><div class="informative section" id="expanded-document-form"><h3><span class="secno"><ins class="diff-chg">
6.17
</ins>
</span>
Expanded
Document
Form
</h3>
<p>
<em>
<ins class="diff-new">This
section
is
non-normative.
</ins></em></p>
<p>
The
JSON-LD
<ins class="diff-new">Processing
Algorithms
and
</ins>
API
<ins class="diff-new">specification
</ins>
[
<cite>
<a class="bibref" href="#bib-JSON-LD-API">
JSON-LD-API
</a>
</cite>
]
defines
<del class="diff-old">an
</del>
<ins class="diff-chg">a
</ins>
method
for
<em>
expanding
</em>
a
JSON-LD
document.
Expansion
is
the
process
of
taking
a
JSON-LD
document
and
applying
a
<code>
@context
</code>
such
that
all
IRIs,
types,
and
values
are
expanded
so
that
the
<code>
@context
</code>
is
no
longer
necessary.
</p>
<p>
For
example,
assume
the
following
JSON-LD
input
document:
</p>
<del class="diff-old">{
</del>
  <div class="example"><div class="example-title"><span>Example 55</span>: Sample JSON-LD document</div><pre class="example">{
   &quot;@context&quot;:
   {
      &quot;name&quot;: &quot;http://xmlns.com/foaf/0.1/name&quot;,
      &quot;homepage&quot;: {
        &quot;@id&quot;: &quot;http://xmlns.com/foaf/0.1/homepage&quot;,
<del class="diff-old">        &quot;@type&quot;, &quot;@id&quot;
</del>
<ins class="diff-chg">        &quot;@type&quot;: &quot;@id&quot;
</ins>
      }
   },
   &quot;name&quot;: &quot;Manu Sporny&quot;,
   &quot;homepage&quot;: &quot;http://manu.sporny.org/&quot;
}
</pre>
</div>
<p>
Running
the
JSON-LD
Expansion
algorithm
against
the
JSON-LD
input
document
provided
above
would
result
in
the
following
output:
</p>
<del class="diff-old">[
</del>
  <div class="example"><div class="example-title"><span>Example 56</span>: Expanded form for the previous example</div><pre class="example">[
  {
    &quot;http://xmlns.com/foaf/0.1/name&quot;: [
      { &quot;@value&quot;: &quot;Manu Sporny&quot; }
    ],
    &quot;http://xmlns.com/foaf/0.1/homepage&quot;: [
      { &quot;@id&quot;: &quot;http://manu.sporny.org/&quot; }
    ]
  }
]
</pre>
</div>
<del class="diff-old">Expanded
document
form
is
useful
when
an
application
has
to
process
input
data
in
a
deterministic
form.
It
has
been
optimized
to
ensure
that
the
code
that
developers
have
to
write
is
minimized
compared
to
the
code
that
would
have
to
be
written
to
operate
on
compact
document
form
.
</del>
</div>
<div class="informative section" id="compact-document-form">
<h3>
<span class="secno">
<del class="diff-old">4.14
</del>
<ins class="diff-chg">6.18
</ins>
</span>
Compact
Document
Form
</h3>
<p>
<em>
<ins class="diff-new">This
section
is
non-normative.
</ins></em></p>
<p>
The
JSON-LD
<ins class="diff-new">Processing
Algorithms
and
</ins>
API
<ins class="diff-new">specification
</ins>
[
<cite>
<a class="bibref" href="#bib-JSON-LD-API">
JSON-LD-API
</a>
</cite>
]
defines
a
method
for
<em>
compacting
</em>
a
JSON-LD
document.
Compaction
is
the
process
of
<del class="diff-old">taking
a
JSON-LD
document
and
</del>
applying
a
<ins class="diff-new">developer-supplied
</ins>
context
<del class="diff-old">such
that
the
most
</del>
<ins class="diff-chg">to
shorten
</ins><a class="tref internalDFN" title="iri" href="#dfn-iri"><ins class="diff-chg">
IRIs
</ins></a><ins class="diff-chg">
to
</ins><a class="tref internalDFN" title="term" href="#dfn-term"><ins class="diff-chg">
terms
</ins></a><ins class="diff-chg">
or
</ins><a class="tref internalDFN" title="compact-iri" href="#dfn-compact-iri">
compact
<del class="diff-old">form
of
the
document
is
generated.
JSON
is
typically
</del>
<ins class="diff-chg">IRIs
</ins></a><ins class="diff-chg">
and
JSON-LD
values
</ins>
expressed
in
<del class="diff-old">a
very
compact,
key-value
format.
That
is,
full
IRIs
are
rarely
used
</del>
<ins class="diff-chg">expanded
form
to
simple
values
such
</ins>
as
<del class="diff-old">keys.
At
times,
a
JSON-LD
</del>
<a class="tref internalDFN" title="string" href="#dfn-string">
<ins class="diff-chg">strings
</ins></a><ins class="diff-chg">
or
</ins><a class="tref internalDFN" title="number" href="#dfn-number"><ins class="diff-chg">
numbers
</ins></a>.<ins class="diff-chg">
Often
this
makes
it
simpler
to
work
with
</ins>
document
<del class="diff-old">may
be
received
that
</del>
<ins class="diff-chg">as
the
data
</ins>
is
<del class="diff-old">not
</del>
<ins class="diff-chg">expressed
</ins>
in
<del class="diff-old">its
most
compact
form.
JSON-LD,
via
the
API,
provides
a
way
</del>
<ins class="diff-chg">application-specific
terms.
Compacted
documents
are
also
typically
easier
</ins>
to
<del class="diff-old">compact
a
JSON-LD
document.
</del>
<ins class="diff-chg">read
for
humans.
</ins>
</p>
<p>
For
example,
assume
the
following
JSON-LD
input
document:
</p>
<del class="diff-old">[
</del>
  <div class="example"><div class="example-title"><span>Example 57</span>: Sample expanded JSON-LD document</div><pre class="example">[
  {
    &quot;http://xmlns.com/foaf/0.1/name&quot;: [ &quot;Manu Sporny&quot; ],
    &quot;http://xmlns.com/foaf/0.1/homepage&quot;: [
      {
       &quot;@id&quot;: &quot;http://manu.sporny.org/&quot;
      }
    ]
  }
]
</pre>
</div>
<p>
Additionally,
assume
the
following
developer-supplied
JSON-LD
context:
</p>
<del class="diff-old">{
</del>
  <div class="example"><div class="example-title"><span>Example 58</span>: Sample context</div><pre class="example">{
  &quot;@context&quot;: {
    &quot;name&quot;: &quot;http://xmlns.com/foaf/0.1/name&quot;,
    &quot;homepage&quot;: {
      &quot;@id&quot;: &quot;http://xmlns.com/foaf/0.1/homepage&quot;,
      &quot;@type&quot;: &quot;@id&quot;
    }
  }
}
</pre>
</div>
<p>
Running
the
JSON-LD
Compaction
algorithm
given
the
context
supplied
above
against
the
JSON-LD
input
document
provided
above
would
result
in
the
following
output:
</p>
<del class="diff-old">{
</del>
  <div class="example"><div class="example-title"><span>Example 59</span>: Compact form of the sample document once sample context has been applied</div><pre class="example">{
  &quot;@context&quot;: {
    &quot;name&quot;: &quot;http://xmlns.com/foaf/0.1/name&quot;,
    &quot;homepage&quot;: {
      &quot;@id&quot;: &quot;http://xmlns.com/foaf/0.1/homepage&quot;,
      &quot;@type&quot;: &quot;@id&quot;
    }
  },
  &quot;name&quot;: &quot;Manu Sporny&quot;,
  &quot;homepage&quot;: &quot;http://manu.sporny.org/&quot;
}
</pre>
</div>
</div>
<div class="informative section" id="flattened-document-form">
<h3>
<span class="secno">
<ins class="diff-new">6.19
</ins></span><ins class="diff-new">
Flattened
Document
Form
</ins></h3><p><em><ins class="diff-new">
This
section
is
non-normative.
</ins></em></p>
<p>
The
<del class="diff-old">compaction
algorithm
enables
</del>
<ins class="diff-chg">JSON-LD
Processing
Algorithms
and
API
specification
[
</ins><cite><a class="bibref" href="#bib-JSON-LD-API"><ins class="diff-chg">
JSON-LD-API
</ins></a></cite><ins class="diff-chg">
]
defines
</ins>
a
<del class="diff-old">developer
</del>
<ins class="diff-chg">method
for
</ins><em><ins class="diff-chg">
flattening
</ins></em><ins class="diff-chg">
a
JSON-LD
document.
Flattening
collects
all
properties
of
a
</ins><a class="tref internalDFN" title="node" href="#dfn-node"><ins class="diff-chg">
node
</ins></a><ins class="diff-chg">
in
a
single
</ins><a class="tref internalDFN" title="json-object" href="#dfn-json-object"><ins class="diff-chg">
JSON
object
</ins></a><ins class="diff-chg">
and
labels
all
</ins><a class="tref internalDFN" title="blank-node" href="#dfn-blank-node"><ins class="diff-chg">
blank
nodes
</ins></a><ins class="diff-chg">
with
</ins><a class="tref internalDFN" title="blank-node-identifier" href="#dfn-blank-node-identifier"><ins class="diff-chg">
blank
node
identifiers
</ins></a>.<ins class="diff-chg">
This
ensures
a
shape
of
the
data
and
consequently
may
drastically
simplify
the
code
required
</ins>
to
<del class="diff-old">map
any
document
into
an
application-specific
compacted
form
by
first
expanding
</del>
<ins class="diff-chg">process
JSON-LD
in
certain
applications.
</ins></p><p><ins class="diff-chg">
For
example,
assume
the
following
JSON-LD
input
document:
</ins></p>  <div class="example"><div class="example-title"><span>Example 60</span>: Sample JSON-LD document</div><pre class="example">{<ins class="diff-chg">
  &quot;@context&quot;: {
    &quot;name&quot;: &quot;http://xmlns.com/foaf/0.1/name&quot;,
    &quot;knows&quot;: &quot;http://xmlns.com/foaf/0.1/knows&quot;
  },
  &quot;@id&quot;: &quot;http://me.markus-lanthaler.com/&quot;,
  &quot;name&quot;: &quot;Markus Lanthaler&quot;,
  &quot;knows&quot;: [
    {
      &quot;@id&quot;: &quot;http://manu.sporny.org/&quot;,
      &quot;name&quot;: &quot;Manu Sporny&quot;
    },
    {
      &quot;name&quot;: &quot;Dave Longley&quot;
    }
  ]
}
</ins></pre></div><p><ins class="diff-chg">
Running
the
JSON-LD
Flattening
algorithm
against
</ins>
the
<ins class="diff-new">JSON-LD
input
</ins>
document
<del class="diff-old">.
While
</del>
<ins class="diff-chg">in
</ins>
the
<del class="diff-old">context
provided
</del>
<ins class="diff-chg">example
</ins>
above
<del class="diff-old">mapped
http://xmlns.com/foaf/0.1/name
to
name
,
it
could
have
also
mapped
it
to
any
arbitrary
string
provided
by
</del>
<ins class="diff-chg">and
using
</ins>
the
<del class="diff-old">developer.
This
powerful
mechanism,
along
with
another
</del>
<ins class="diff-chg">same
context
would
result
in
the
following
output:
</ins></p>  <div class="example"><div class="example-title"><span>Example 61</span>: Flattened and compacted form for the previous example</div><pre class="example">{<ins class="diff-chg">
  &quot;@context&quot;: {
    &quot;name&quot;: &quot;http://xmlns.com/foaf/0.1/name&quot;,
    &quot;knows&quot;: &quot;http://xmlns.com/foaf/0.1/knows&quot;
  },
  &quot;@graph&quot;: [
    {
      &quot;@id&quot;: &quot;_:b0&quot;,
      &quot;name&quot;: &quot;Dave Longley&quot;
    },
    {
      &quot;@id&quot;: &quot;http://manu.sporny.org/&quot;,
      &quot;name&quot;: &quot;Manu Sporny&quot;
    },
    {
      &quot;@id&quot;: &quot;http://me.markus-lanthaler.com/&quot;,
      &quot;name&quot;: &quot;Markus Lanthaler&quot;,
      &quot;knows&quot;: [
        { &quot;@id&quot;: &quot;http://manu.sporny.org/&quot; },
        { &quot;@id&quot;: &quot;_:b0&quot; }
      ]
    }
  ]
}
</ins></pre></div></div><div class="informative section" id="embedding-json-ld-in-html-documents"><h3><span class="secno"><ins class="diff-chg">
6.20
</ins></span><ins class="diff-chg">
Embedding
</ins>
JSON-LD
<del class="diff-old">API
technique
called
</del>
<ins class="diff-chg">in
HTML
Documents
</ins></h3><p>
<em>
<del class="diff-old">framing
,
allows
</del>
<ins class="diff-chg">This
section
is
non-normative.
</ins></em></p><p><ins class="diff-chg">
HTML
script
tags
can
be
used
to
embed
blocks
of
data
in
documents.
This
way,
JSON-LD
content
can
be
easily
embedded
in
HTML
by
placing
it
in
a
script
element
with
</ins>
the
<del class="diff-old">developer
</del>
<code>
<ins class="diff-chg">type
</ins></code><ins class="diff-chg">
attribute
set
</ins>
to
<del class="diff-old">re-shape
</del>
<code>
<ins class="diff-chg">application/ld+json
</ins></code>.</p>  <div class="example"><div class="example-title"><span>Example 62</span>: Embedding JSON-LD in HTML</div><pre class="example"><span class="diff">&lt;script type=&quot;application/ld+json&quot;&gt;</span><ins class="diff-chg">
{
  &quot;@context&quot;: &quot;http://json-ld.org/contexts/person.jsonld&quot;,
  &quot;@id&quot;: &quot;http://dbpedia.org/resource/John_Lennon&quot;,
  &quot;name&quot;: &quot;John Lennon&quot;,
  &quot;born&quot;: &quot;1940-10-09&quot;,
  &quot;spouse&quot;: &quot;http://dbpedia.org/resource/Cynthia_Lennon&quot;
}
</ins><span class="diff"><ins class="diff-chg">
&lt;/script&gt;
</ins></span></pre></div><p><ins class="diff-chg">
Depending
on
how
</ins>
the
<del class="diff-old">incoming
JSON
</del>
<ins class="diff-chg">HTML
document
is
served,
certain
strings
may
need
to
be
escaped.
</ins></p><p><ins class="diff-chg">
Defining
how
such
</ins>
data
<del class="diff-old">into
a
format
that
</del>
<ins class="diff-chg">may
be
used
</ins>
is
<del class="diff-old">optimized
for
their
application.
</del>
<ins class="diff-chg">beyond
the
scope
of
this
specification.
The
embedded
JSON-LD
document
might
be
extracted
as
is
or,
e.g.,
be
converted
to
RDF.
</ins></p><p><ins class="diff-chg">
If
JSON-LD
content
is
extracted
as
RDF
[
</ins><cite><a class="bibref" href="#bib-RDF11-CONCEPTS"><ins class="diff-chg">
RDF11-CONCEPTS
</ins></a></cite><ins class="diff-chg">
],
it
should
be
expanded
into
an
</ins><a class="tref externalDFN" title="rdf-dataset" href="http://www.w3.org/TR/rdf11-concepts/#dfn-rdf-dataset"><ins class="diff-chg">
RDF
dataset
</ins></a><ins class="diff-chg">
using
the
</ins><cite><a href="http://www.w3.org/TR/2013/WD-json-ld-api-20130411/#convert-to-rdf-algorithm"><ins class="diff-chg">
Convert
to
RDF
Algorithm
</ins></a></cite><ins class="diff-chg">
[
</ins><cite><a class="bibref" href="#bib-JSON-LD-API"><ins class="diff-chg">
JSON-LD-API
</ins></a></cite><ins class="diff-chg">
].
</ins>
</p>
</div>
</div>
<div class="appendix normative section" id="data-model">
<h2>
<span class="secno">
A.
</span>
<del class="diff-old">JSON-LD
Authoring
Guidelines
</del>
<ins class="diff-chg">Data
Model
</ins>
</h2>
<p>
<del class="diff-old">Since
</del>
<ins class="diff-chg">JSON-LD
is
a
serialization
format
for
</ins><a class="tref internalDFN" title="linked-data" href="#dfn-linked-data"><ins class="diff-chg">
Linked
Data
</ins></a><ins class="diff-chg">
based
on
JSON.
It
is
therefore
important
to
distinguish
between
</ins>
the
<ins class="diff-new">syntax,
which
is
defined
by
JSON
in
[
</ins><cite><a class="bibref" href="#bib-RFC4627"><ins class="diff-new">
RFC4627
</ins></a></cite><ins class="diff-new">
],
and
</ins><dfn title="json-ld-data-model" id="dfn-json-ld-data-model"><ins class="diff-new">
JSON-LD's
data
model
</ins></dfn><ins class="diff-new">
which
is
defined
as
follows:
</ins></p><ul><li><ins class="diff-new">
A
</ins><dfn title="json-ld-document" id="dfn-json-ld-document">
JSON-LD
<del class="diff-old">syntax
</del>
<ins class="diff-chg">document
</ins></dfn><ins class="diff-chg">
serializes
a
collection
of
</ins><a class="tref internalDFN" title="json-ld-graph" href="#dfn-json-ld-graph"><ins class="diff-chg">
JSON-LD
graphs
</ins></a><ins class="diff-chg">
and
comprises
exactly
one
</ins><dfn title="default-graph" id="dfn-default-graph"><ins class="diff-chg">
default
graph
</ins></dfn><ins class="diff-chg">
and
zero
or
more
</ins><dfn title="named-graph" id="dfn-named-graph"><ins class="diff-chg">
named
graphs
</ins></dfn>.</li><li><ins class="diff-chg">
The
</ins><a class="tref internalDFN" title="default-graph" href="#dfn-default-graph"><ins class="diff-chg">
default
graph
</ins></a><ins class="diff-chg">
does
not
have
a
name
and
</ins><em class="rfc2119" title="MAY"><ins class="diff-chg">
MAY
</ins></em><ins class="diff-chg">
be
empty.
</ins></li><li><ins class="diff-chg">
Each
</ins><a class="tref internalDFN" title="named-graph" href="#dfn-named-graph"><ins class="diff-chg">
named
graph
</ins></a>
is
a
<del class="diff-old">subset
</del>
<ins class="diff-chg">pair
consisting
</ins>
of
<ins class="diff-new">an
</ins><a class="tref internalDFN" title="iri" href="#dfn-iri"><abbr title="Internationalized Resource Identifier"><ins class="diff-new">
IRI
</ins></abbr></a><ins class="diff-new">
or
</ins><a class="tref internalDFN" title="blank-node-identifier" href="#dfn-blank-node-identifier"><ins class="diff-new">
blank
node
identifier
</ins></a><ins class="diff-new">
(the
</ins><dfn title="graph-name" id="dfn-graph-name"><ins class="diff-new">
graph
name
</ins></dfn><ins class="diff-new">
)
and
a
</ins><a class="tref internalDFN" title="json-ld-graph" href="#dfn-json-ld-graph"><ins class="diff-new">
JSON-LD
graph
</ins></a>.<ins class="diff-new">
Whenever
practical,
</ins>
the
<del class="diff-old">JSON
syntax,
</del>
<a class="tref internalDFN" title="graph-name" href="#dfn-graph-name">
<ins class="diff-chg">graph
name
</ins></a><em class="rfc2119" title="SHOULD"><ins class="diff-chg">
SHOULD
</ins></em><ins class="diff-chg">
be
an
</ins><a class="tref internalDFN" title="iri" href="#dfn-iri"><abbr title="Internationalized Resource Identifier"><ins class="diff-chg">
IRI
</ins></abbr></a>.</li><li><ins class="diff-chg">
A
</ins><dfn title="json-ld-graph" id="dfn-json-ld-graph"><ins class="diff-chg">
JSON-LD
graph
</ins></dfn><ins class="diff-chg">
is
a
labeled
directed
graph,
i.e.,
a
set
of
</ins><a class="tref internalDFN" title="node" href="#dfn-node"><ins class="diff-chg">
nodes
</ins></a><ins class="diff-chg">
connected
by
</ins><a class="tref internalDFN" title="edge" href="#dfn-edge"><ins class="diff-chg">
edges
</ins></a>.</li><li><ins class="diff-chg">
Every
</ins><dfn title="edge" id="dfn-edge"><ins class="diff-chg">
edge
</ins></dfn><ins class="diff-chg">
has
a
direction
associated
with
</ins>
it
<del class="diff-old">follows
that
all
valid
</del>
<ins class="diff-chg">and
is
labeled
with
an
</ins><a class="tref internalDFN" title="iri" href="#dfn-iri"><abbr title="Internationalized Resource Identifier"><ins class="diff-chg">
IRI
</ins></abbr></a><ins class="diff-chg">
or
a
</ins><a class="tref internalDFN" title="blank-node-identifier" href="#dfn-blank-node-identifier"><ins class="diff-chg">
blank
node
identifier
</ins></a>.<ins class="diff-chg">
Within
the
</ins>
JSON-LD
<del class="diff-old">documents
</del>
<ins class="diff-chg">syntax
these
edge
labels
</ins>
are
<del class="diff-old">valid
JSON
documents.
It
also
means
that
</del>
<ins class="diff-chg">called
</ins><dfn title="property" id="dfn-property"><ins class="diff-chg">
properties
</ins></dfn>.<ins class="diff-chg">
Whenever
practical,
</ins>
an
<del class="diff-old">invalid
JSON
document
can
never
</del>
<a class="tref internalDFN" title="edge" href="#dfn-edge">
<ins class="diff-chg">edge
</ins></a><em class="rfc2119" title="SHOULD"><ins class="diff-chg">
SHOULD
</ins></em>
be
<ins class="diff-new">labeled
with
an
</ins><a class="tref internalDFN" title="iri" href="#dfn-iri"><abbr title="Internationalized Resource Identifier"><ins class="diff-new">
IRI
</ins></abbr></a>.</li><li><ins class="diff-new">
Every
</ins><dfn title="node" id="dfn-node"><ins class="diff-new">
node
</ins></dfn><ins class="diff-new">
is
an
</ins><a class="tref internalDFN" title="iri" href="#dfn-iri"><abbr title="Internationalized Resource Identifier"><ins class="diff-new">
IRI
</ins></abbr></a>,
a
<del class="diff-old">valid
</del>
<a class="tref internalDFN" title="blank-node" href="#dfn-blank-node">
<ins class="diff-chg">blank
node
</ins></a>,<ins class="diff-chg">
a
</ins><a class="tref internalDFN" title="json-ld-value" href="#dfn-json-ld-value">
JSON-LD
<del class="diff-old">document.
Furthermore,
</del>
<ins class="diff-chg">value
</ins></a>,<ins class="diff-chg">
or
a
</ins><a class="tref internalDFN" title="list" href="#dfn-list"><ins class="diff-chg">
list
</ins></a>.</li><li><ins class="diff-chg">
A
</ins><a class="tref internalDFN" title="node" href="#dfn-node"><ins class="diff-chg">
node
</ins></a><ins class="diff-chg">
having
an
outgoing
edge
</ins><em class="rfc2119" title="MUST"><ins class="diff-chg">
MUST
</ins></em><ins class="diff-chg">
be
an
</ins><a class="tref internalDFN" title="iri" href="#dfn-iri"><abbr title="Internationalized Resource Identifier"><ins class="diff-chg">
IRI
</ins></abbr></a><ins class="diff-chg">
or
a
</ins><a class="tref internalDFN" title="blank-node" href="#dfn-blank-node"><ins class="diff-chg">
blank
node
</ins></a>.</li><li><ins class="diff-chg">
A
</ins><a class="tref internalDFN" title="json-ld-graph" href="#dfn-json-ld-graph">
JSON-LD
<del class="diff-old">places
</del>
<ins class="diff-chg">graph
</ins></a><em class="rfc2119" title="MUST NOT"><ins class="diff-chg">
MUST
NOT
</ins></em><ins class="diff-chg">
contain
unconnected
</ins><a class="tref internalDFN" title="node" href="#dfn-node"><ins class="diff-chg">
nodes
</ins></a>,<ins class="diff-chg">
i.e.,
nodes
which
are
not
connected
by
an
</ins><a class="tref internalDFN" title="edge" href="#dfn-edge"><ins class="diff-chg">
edge
</ins></a><ins class="diff-chg">
to
any
other
</ins><a class="tref internalDFN" title="node" href="#dfn-node"><ins class="diff-chg">
node
</ins></a>.</li><li><ins class="diff-chg">
An
</ins><dfn title="iri" id="dfn-iri"><abbr title="Internationalized Resource Identifier"><ins class="diff-chg">
IRI
</ins></abbr></dfn><ins class="diff-chg">
(Internationalized
Resource
Identifier)
is
</ins>
a
<del class="diff-old">number
of
restrictions
on
</del>
<ins class="diff-chg">string
that
conforms
to
</ins>
the
<del class="diff-old">JSON
</del>
syntax
<ins class="diff-new">defined
</ins>
in
<del class="diff-old">order
to
define
</del>
<ins class="diff-chg">[
</ins><cite><a class="bibref" href="#bib-RFC3987"><ins class="diff-chg">
RFC3987
</ins></a></cite><ins class="diff-chg">
].
</ins><a class="tref internalDFN" title="iri" href="#dfn-iri"><ins class="diff-chg">
IRIs
</ins></a><ins class="diff-chg">
used
within
</ins>
a
<del class="diff-old">set
of
authoring
guidelines
</del>
<a class="tref internalDFN" title="json-ld-graph" href="#dfn-json-ld-graph">
<ins class="diff-chg">JSON-LD
graph
</ins></a><em class="rfc2119" title="SHOULD"><ins class="diff-chg">
SHOULD
</ins></em><ins class="diff-chg">
return
a
</ins><a class="tref internalDFN" title="linked-data" href="#dfn-linked-data"><ins class="diff-chg">
Linked
Data
</ins></a><ins class="diff-chg">
document
describing
the
resource
denoted
by
that
</ins><a class="tref internalDFN" title="iri" href="#dfn-iri"><abbr title="Internationalized Resource Identifier"><ins class="diff-chg">
IRI
</ins></abbr></a><ins class="diff-chg">
when
being
dereferenced.
</ins></li><li><ins class="diff-chg">
A
</ins><dfn title="blank-node" id="dfn-blank-node"><ins class="diff-chg">
blank
node
</ins></dfn><ins class="diff-chg">
is
a
</ins><a class="tref internalDFN" title="node" href="#dfn-node"><ins class="diff-chg">
node
</ins></a><ins class="diff-chg">
which
is
neither
an
</ins><a class="tref internalDFN" title="iri" href="#dfn-iri"><abbr title="Internationalized Resource Identifier"><ins class="diff-chg">
IRI
</ins></abbr></a>,<ins class="diff-chg">
nor
a
</ins><a class="tref internalDFN" title="json-ld-value" href="#dfn-json-ld-value"><ins class="diff-chg">
JSON-LD
value
</ins></a>,<ins class="diff-chg">
nor
a
</ins><a class="tref internalDFN" title="list" href="#dfn-list"><ins class="diff-chg">
list
</ins></a>.<ins class="diff-chg">
A
blank
node
</ins><em class="rfc2119" title="MAY"><ins class="diff-chg">
MAY
</ins>
</em>
<ins class="diff-new">be
identified
using
a
</ins><a class="tref internalDFN" title="blank-node-identifier" href="#dfn-blank-node-identifier"><ins class="diff-new">
blank
node
identifier
</ins></a>.</li><li><ins class="diff-new">
A
</ins><dfn title="blank-node-identifier" id="dfn-blank-node-identifier"><ins class="diff-new">
blank
node
identifier
</ins></dfn><ins class="diff-new">
is
a
string
</ins>
that
<del class="diff-old">are
</del>
<ins class="diff-chg">can
be
</ins>
used
<del class="diff-old">to
express
well-formed
JSON-LD
documents.
At
times,
even
if
these
guidelines
are
violated,
</del>
<ins class="diff-chg">as
an
identifier
for
</ins>
a
<del class="diff-old">JSON-LD
processor
will
do
its
best
to
recover
from
</del>
<a class="tref internalDFN" title="blank-node" href="#dfn-blank-node">
<ins class="diff-chg">blank
node
</ins></a><ins class="diff-chg">
within
</ins>
the
<del class="diff-old">mistake
</del>
<ins class="diff-chg">scope
of
a
</ins><a class="tref internalDFN" title="json-ld-document" href="#dfn-json-ld-document"><ins class="diff-chg">
JSON-LD
document
</ins></a>.<ins class="diff-chg">
Blank
node
identifiers
begin
with
</ins><code><ins class="diff-chg">
_:
</ins></code>.</li><li><ins class="diff-chg">
A
</ins><dfn title="json-ld-value" id="dfn-json-ld-value"><ins class="diff-chg">
JSON-LD
value
</ins></dfn><ins class="diff-chg">
is
a
</ins><a class="tref internalDFN" title="string" href="#dfn-string"><ins class="diff-chg">
string
</ins></a>,<ins class="diff-chg">
a
</ins><a class="tref internalDFN" title="number" href="#dfn-number"><ins class="diff-chg">
number
</ins></a>,<a class="tref internalDFN" title="true" href="#dfn-true"><ins class="diff-chg">
true
</ins></a><ins class="diff-chg">
or
</ins><a class="tref internalDFN" title="false" href="#dfn-false"><ins class="diff-chg">
false
</ins></a>,<ins class="diff-chg">
a
</ins><a class="tref internalDFN" title="typed-value" href="#dfn-typed-value"><ins class="diff-chg">
typed
value
</ins></a>,<ins class="diff-chg">
or
a
</ins><a class="tref internalDFN" title="language-tagged-string" href="#dfn-language-tagged-string"><ins class="diff-chg">
language-tagged
string
</ins></a>.</li><li><ins class="diff-chg">
A
</ins><dfn title="typed-value" id="dfn-typed-value"><ins class="diff-chg">
typed
value
</ins></dfn><ins class="diff-chg">
consists
of
a
value,
which
is
a
string,
</ins>
and
<del class="diff-old">will
deterministically
transform
the
author's
markup
into
</del>
<ins class="diff-chg">a
type,
which
is
an
</ins><a class="tref internalDFN" title="iri" href="#dfn-iri"><abbr title="Internationalized Resource Identifier"><ins class="diff-chg">
IRI
</ins></abbr></a>.</li><li><ins class="diff-chg">
A
</ins><dfn title="language-tagged-string" id="dfn-language-tagged-string"><ins class="diff-chg">
language-tagged
string
</ins></dfn><ins class="diff-chg">
consists
of
a
string
and
a
non-empty
language
tag
as
defined
by
[
</ins><cite><a class="bibref" href="#bib-BCP47"><ins class="diff-chg">
BCP47
</ins></a></cite><ins class="diff-chg">
].
The
language
tag
</ins><em class="rfc2119" title="MUST"><ins class="diff-chg">
MUST
</ins></em><ins class="diff-chg">
be
</ins>
well-formed
<del class="diff-old">JSON-LD.
</del>
<ins class="diff-chg">according
to
section
</ins><a href="http://tools.ietf.org/html/bcp47#section-2.2.9"><ins class="diff-chg">
2.2.9
Classes
of
Conformance
</ins></a><ins class="diff-chg">
of
[
</ins><cite><a class="bibref" href="#bib-BCP47"><ins class="diff-chg">
BCP47
</ins></a></cite><ins class="diff-chg">
].
</ins></li><li><ins class="diff-chg">
A
</ins><dfn title="list" id="dfn-list"><ins class="diff-chg">
list
</ins></dfn><ins class="diff-chg">
is
an
ordered
sequence
of
zero
or
more
</ins><a class="tref internalDFN" title="iri" href="#dfn-iri"><ins class="diff-chg">
IRIs
</ins></a>,<a class="tref internalDFN" title="blank-node" href="#dfn-blank-node"><ins class="diff-chg">
blank
nodes
</ins></a>,<ins class="diff-chg">
and
</ins><a class="tref internalDFN" title="json-ld-value" href="#dfn-json-ld-value"><ins class="diff-chg">
JSON-LD
values
</ins></a>.</li></ul><div class="issue atrisk">
<div class="issue-title">
<span>
<del class="diff-old">Issue
4
</del>
<ins class="diff-chg">Feature
at
Risk
3
</ins></span>:<ins class="diff-chg">
Allow
blank
nodes
to
be
used
as
graph
name
or
property
</ins>
</div>
<del class="diff-old">The
final
details
of
</del>
<div class="atrisk">
<p class="atrisk-head">
<ins class="diff-chg">Note:
This
feature
is
</ins><a href="http://www.w3.org/2005/10/Process-20051014/tr#cfi"><ins class="diff-chg">
&quot;at
risk&quot;
</ins></a><ins class="diff-chg">
and
may
be
removed
from
this
specification
based
on
feedback.
Please
send
feedback
to
</ins><a href="mailto:public-rdf-comments@w3.org"><ins class="diff-chg">
public-rdf-comments@w3.org
</ins></a>.<ins class="diff-chg">
For
</ins>
the
<del class="diff-old">guidelines
are
still
being
discussed
(
ISSUE-114
</del>
<ins class="diff-chg">current
status
see
</ins><a href="http://www.w3.org/2011/rdf-wg/wiki/JSON-LD_Features_at_Risk"><ins class="diff-chg">
features
&quot;at
risk&quot;
in
JSON-LD
1.0
</ins>
</a>
<del class="diff-old">),
</del>
</p>
<p>
<ins class="diff-chg">RDF
does
not
currently
allow
a
</ins><a class="tref internalDFN" title="blank-node" href="#dfn-blank-node"><ins class="diff-chg">
blank
node
</ins></a><ins class="diff-chg">
to
be
used
</ins>
as
<del class="diff-old">well
</del>
<a class="tref internalDFN" title="graph-name" href="#dfn-graph-name">
<ins class="diff-chg">graph
name
</ins></a><ins class="diff-chg">
or
</ins><a class="tref internalDFN" title="property" href="#dfn-property"><ins class="diff-chg">
property
</ins></a>,<ins class="diff-chg">
while
JSON-LD
does.
JSON-LD
to
RDF
converters
can
work
around
this
restriction,
when
converting
JSON-LD
to
RDF,
by
converting
such
</ins><a class="tref internalDFN" title="blank-node" href="#dfn-blank-node"><ins class="diff-chg">
blank
nodes
</ins></a><ins class="diff-chg">
to
</ins><a class="tref internalDFN" title="iri" href="#dfn-iri"><ins class="diff-chg">
IRIs
</ins></a>,<ins class="diff-chg">
minting
new
&quot;Skolem
IRIs&quot;
</ins>
as
<ins class="diff-new">per
</ins><cite><a href="http://www.w3.org/TR/rdf11-concepts/#section-skolemization"><ins class="diff-new">
Replacing
Blank
Nodes
with
IRIs
</ins></a></cite><ins class="diff-new">
of
[
</ins><cite><a class="bibref" href="#bib-RDF11-CONCEPTS"><ins class="diff-new">
RDF11-CONCEPTS
</ins></a></cite><ins class="diff-new">
].
Based
on
feedback
from
implementors
</ins>
the
<del class="diff-old">best
mechanism
</del>
<ins class="diff-chg">Working
Group
may
decide
</ins>
to
<del class="diff-old">express
these
restrictions.
EBNF
doesn't
quite
capture
what
these
guidelines
are
attempting
</del>
<ins class="diff-chg">disallow
blank
nodes
as
graph
names
and
properties
in
JSON-LD.
If
this
change
would
affect
you,
be
sure
</ins>
to
<del class="diff-old">do
-
which
is
strongly
express
what
constitutes
</del>
<ins class="diff-chg">send
in
</ins>
a
<del class="diff-old">well-formed
</del>
<ins class="diff-chg">comment.
</ins></p></div></div><p><a class="tref internalDFN" title="json-ld-document" href="#dfn-json-ld-document">
JSON-LD
<del class="diff-old">document.
For
</del>
<ins class="diff-chg">documents
</ins></a><em class="rfc2119" title="MAY"><ins class="diff-chg">
MAY
</ins></em><ins class="diff-chg">
contain
data
that
cannot
be
represented
by
</ins>
the
<del class="diff-old">time
being,
</del>
<a class="tref internalDFN" title="json-ld-data-model" href="#dfn-json-ld-data-model">
<ins class="diff-chg">data
model
</ins></a><ins class="diff-chg">
defined
above.
Unless
otherwise
specified,
such
data
is
ignored
when
</ins>
a
<del class="diff-old">simple
list
of
plain
English
guidelines
</del>
<a class="tref internalDFN" title="json-ld-document" href="#dfn-json-ld-document">
<ins class="diff-chg">JSON-LD
document
</ins></a><ins class="diff-chg">
is
being
processed.
This
means,
e.g.,
that
properties
which
</ins>
are
<del class="diff-old">provided.
</del>
<ins class="diff-chg">not
mapped
to
an
</ins><a class="tref internalDFN" title="iri" href="#dfn-iri"><abbr title="Internationalized Resource Identifier"><ins class="diff-chg">
IRI
</ins></abbr></a><ins class="diff-chg">
or
</ins><a class="tref internalDFN" title="blank-node" href="#dfn-blank-node"><ins class="diff-chg">
blank
node
</ins></a><ins class="diff-chg">
will
be
ignored.
</ins>
</p>
<p style="text-align: center">
<img src="linked-data-graph.png" title="An illustration of JSON-LD's data model" alt="An illustration of JSON-LD's data model" />
</p>
<p style="text-align: center">
<ins class="diff-new">Figure
1:
An
illustration
of
JSON-LD's
data
model.
</ins></p>
</div>
<div class="appendix normative section" id="json-ld-grammar">
<h2>
<span class="secno">
<ins class="diff-chg">B.
</ins></span><ins class="diff-chg">
JSON-LD
Grammar
</ins></h2><p><ins class="diff-chg">
This
appendix
restates
the
syntactic
conventions
described
in
the
previous
sections
more
formally.
</ins></p><p><ins class="diff-chg">
A
</ins><a class="tref internalDFN" title="json-ld-document" href="#dfn-json-ld-document"><ins class="diff-chg">
JSON-LD
document
</ins></a><em class="rfc2119" title="MUST"><ins class="diff-chg">
MUST
</ins></em><ins class="diff-chg">
be
a
valid
JSON
document
as
described
in
[
</ins><cite><a class="bibref" href="#bib-RFC4627"><ins class="diff-chg">
RFC4627
</ins></a></cite><ins class="diff-chg">
].
</ins></p><p><ins class="diff-chg">
A
</ins><a class="tref internalDFN" title="json-ld-document" href="#dfn-json-ld-document"><ins class="diff-chg">
JSON-LD
document
</ins></a><em class="rfc2119" title="MUST"><ins class="diff-chg">
MUST
</ins></em><ins class="diff-chg">
be
a
single
</ins><a class="tref internalDFN" title="node-object" href="#dfn-node-object"><ins class="diff-chg">
node
object
</ins></a><ins class="diff-chg">
or
an
</ins><a class="tref internalDFN" title="array" href="#dfn-array"><ins class="diff-chg">
array
</ins></a><ins class="diff-chg">
whose
elements
are
each
</ins><a class="tref internalDFN" title="node-object" href="#dfn-node-object"><ins class="diff-chg">
node
objects
</ins></a><ins class="diff-chg">
at
the
top
level.
</ins></p><p><ins class="diff-chg">
In
contrast
to
JSON,
in
JSON-LD
the
keys
in
</ins><a class="tref internalDFN" title="json-object" href="#dfn-json-object"><ins class="diff-chg">
objects
</ins></a><em class="rfc2119" title="MUST"><ins class="diff-chg">
MUST
</ins></em><ins class="diff-chg">
be
unique.
</ins></p><div class="note"><div class="note-title">
<span>
<del class="diff-old">Issue
5
</del>
<ins class="diff-chg">Note
</ins>
</span>
</div>
<p class="">
<del class="diff-old">Per
Andy
S's
comment
,
consider
making
</del>
<ins class="diff-chg">JSON-LD
allows
</ins><a class="tref internalDFN" title="keyword" href="#dfn-keyword"><ins class="diff-chg">
keywords
</ins></a><ins class="diff-chg">
to
be
aliased
(see
</ins><a class="sectionRef sec-ref" href="#aliasing-keywords"><ins class="diff-chg">
section
6.15
Aliasing
Keywords
</ins></a><ins class="diff-chg">
for
details).
Whenever
a
</ins><a class="tref internalDFN" title="keyword" href="#dfn-keyword"><ins class="diff-chg">
keyword
</ins></a><ins class="diff-chg">
is
discussed
in
</ins>
this
<ins class="diff-new">grammar,
the
statements
also
apply
to
an
alias
for
that
</ins><a class="tref internalDFN" title="keyword" href="#dfn-keyword"><ins class="diff-new">
keyword
</ins></a>.<ins class="diff-new">
For
example,
if
the
</ins><a class="tref internalDFN" title="active-context" href="#dfn-active-context"><ins class="diff-new">
active
context
</ins></a><ins class="diff-new">
defines
the
</ins><a class="tref internalDFN" title="term" href="#dfn-term"><ins class="diff-new">
term
</ins></a><code><ins class="diff-new">
id
</ins></code><ins class="diff-new">
as
an
alias
for
</ins><code><ins class="diff-new">
@id
</ins></code>,<ins class="diff-new">
that
alias
may
be
legitimately
used
as
</ins>
a
<del class="diff-old">normative
syntax
definition
along
with
EBNF.
</del>
<ins class="diff-chg">substitution
for
</ins><code><ins class="diff-chg">
@id
</ins></code>.<ins class="diff-chg">
Note
that
</ins><a class="tref internalDFN" title="keyword" href="#dfn-keyword"><ins class="diff-chg">
keyword
</ins></a><ins class="diff-chg">
aliases
are
not
expanded
during
context
processing.
</ins>
</p>
</div>
<div class="normative section" id="terms">
<h3>
<span class="secno">
<ins class="diff-chg">B.1
</ins></span><ins class="diff-chg">
Terms
</ins></h3><p>
A
<del class="diff-old">JSON-LD
document
</del>
<dfn title="term" id="dfn-term">
<ins class="diff-chg">term
</ins></dfn>
is
<del class="diff-old">composed
of
</del>
a
<del class="diff-old">single
subject
definition
</del>
<ins class="diff-chg">short-hand
</ins><a class="tref internalDFN" title="string" href="#dfn-string"><ins class="diff-chg">
string
</ins></a><ins class="diff-chg">
that
expands
to
an
</ins><a class="tref internalDFN" title="iri" href="#dfn-iri"><abbr title="Internationalized Resource Identifier"><ins class="diff-chg">
IRI
</ins></abbr>
</a>
or
<ins class="diff-new">a
</ins><a class="tref internalDFN" title="blank-node-identifier" href="#dfn-blank-node-identifier"><ins class="diff-new">
blank
node
identifier
</ins></a>.</p><p><ins class="diff-new">
A
</ins><a class="tref internalDFN" title="term" href="#dfn-term"><ins class="diff-new">
term
</ins></a><em class="rfc2119" title="MUST NOT"><ins class="diff-new">
MUST
NOT
</ins></em><ins class="diff-new">
equal
any
of
the
JSON-LD
</ins><a class="tref internalDFN" title="keyword" href="#dfn-keyword"><ins class="diff-new">
keywords
</ins></a>.</p><p><ins class="diff-new">
To
avoid
forward-compatibility
issues,
a
</ins><a class="tref internalDFN" title="term" href="#dfn-term"><ins class="diff-new">
term
</ins></a><em class="rfc2119" title="SHOULD NOT"><ins class="diff-new">
SHOULD
NOT
</ins></em><ins class="diff-new">
start
with
</ins>
an
<del class="diff-old">array
</del>
<code>
<ins class="diff-chg">@
</ins></code><ins class="diff-chg">
character
as
future
versions
of
JSON-LD
may
introduce
additional
</ins><a class="tref internalDFN" title="keyword" href="#dfn-keyword"><ins class="diff-chg">
keywords
</ins></a>.<ins class="diff-chg">
Furthermore,
the
term
</ins><em class="rfc2119" title="MUST NOT"><ins class="diff-chg">
MUST
NOT
</ins></em><ins class="diff-chg">
be
an
empty
</ins><a class="tref internalDFN" title="string" href="#dfn-string"><ins class="diff-chg">
string
</ins></a><ins class="diff-chg">
(
</ins><code><ins class="diff-chg">
&quot;&quot;
</ins></code><ins class="diff-chg">
)
as
not
all
programming
languages
are
able
to
handle
empty
JSON
keys.
</ins></p><p><ins class="diff-chg">
See
</ins><a class="sectionRef sec-ref" href="#the-context"><ins class="diff-chg">
section
5.1
The
Context
</ins>
</a>
<ins class="diff-new">and
</ins><a class="sectionRef sec-ref" href="#iris"><ins class="diff-new">
section
5.2
IRIs
</ins></a><ins class="diff-new">
for
further
discussion
on
mapping
</ins><a class="tref internalDFN" title="term" href="#dfn-term"><ins class="diff-new">
terms
</ins></a><ins class="diff-new">
to
</ins><a class="tref internalDFN" title="iri" href="#dfn-iri"><ins class="diff-new">
IRIs
</ins></a>.</p></div><div class="normative section" id="node-objects"><h3><span class="secno"><ins class="diff-new">
B.2
</ins></span><ins class="diff-new">
Node
Objects
</ins></h3><p><ins class="diff-new">
A
</ins><dfn title="node-object" id="dfn-node-object"><ins class="diff-new">
node
object
</ins></dfn><ins class="diff-new">
represents
zero
or
more
properties
</ins>
of
<del class="diff-old">subject
definitions
</del>
<ins class="diff-chg">a
</ins><a class="tref internalDFN" title="node" href="#dfn-node"><ins class="diff-chg">
node
</ins></a><ins class="diff-chg">
in
the
</ins><a class="tref internalDFN" title="json-ld-graph" href="#dfn-json-ld-graph"><ins class="diff-chg">
JSON-LD
graph
</ins></a><ins class="diff-chg">
serialized
by
the
</ins><a class="tref internalDFN" title="json-ld-document" href="#dfn-json-ld-document"><ins class="diff-chg">
JSON-LD
document
</ins>
</a>.
<ins class="diff-new">A
</ins><a class="tref internalDFN" title="json-object" href="#dfn-json-object"><ins class="diff-new">
JSON
object
</ins></a><ins class="diff-new">
is
a
</ins><a class="tref internalDFN" title="node-object" href="#dfn-node-object"><ins class="diff-new">
node
object
</ins></a><ins class="diff-new">
if
it
exists
outside
of
a
JSON-LD
</ins><a class="tref internalDFN" title="context" href="#dfn-context"><ins class="diff-new">
context
</ins></a><ins class="diff-new">
and:
</ins></p><ul><li><ins class="diff-new">
it
does
not
contain
the
</ins><code><ins class="diff-new">
@value
</ins></code>,<code><ins class="diff-new">
@list
</ins></code>,<ins class="diff-new">
or
</ins><code><ins class="diff-new">
@set
</ins></code><ins class="diff-new">
keywords,
and
</ins>
</li>
<li>
<del class="diff-old">The
value
</del>
<ins class="diff-chg">it
is
not
the
top-most
</ins><a class="tref internalDFN" title="json-object" href="#dfn-json-object"><ins class="diff-chg">
JSON
object
</ins></a><ins class="diff-chg">
in
the
JSON-LD
document
consisting
</ins>
of
<ins class="diff-new">no
other
members
than
</ins>
<code>
<del class="diff-old">@id
</del>
<ins class="diff-chg">@graph
</ins>
</code>
<del class="diff-old">must
</del>
<ins class="diff-chg">and
</ins><code><ins class="diff-chg">
@context
</ins></code>.</li></ul><p><ins class="diff-chg">
The
</ins><a class="tref internalDFN" title="property" href="#dfn-property"><ins class="diff-chg">
properties
</ins></a><ins class="diff-chg">
of
a
</ins><a class="tref internalDFN" title="node" href="#dfn-node"><ins class="diff-chg">
node
</ins></a><ins class="diff-chg">
in
a
</ins><a class="tref internalDFN" title="json-ld-graph" href="#dfn-json-ld-graph"><ins class="diff-chg">
JSON-LD
graph
</ins></a><ins class="diff-chg">
may
be
spread
among
different
</ins><a class="tref internalDFN" title="node-object" href="#dfn-node-object"><ins class="diff-chg">
node
objects
</ins></a><ins class="diff-chg">
within
a
document.
When
that
happens,
the
keys
of
the
different
</ins><a class="tref internalDFN" title="node-object" href="#dfn-node-object"><ins class="diff-chg">
node
objects
</ins></a><ins class="diff-chg">
need
to
be
merged
to
create
the
properties
of
the
resulting
</ins><a class="tref internalDFN" title="node" href="#dfn-node"><ins class="diff-chg">
node
</ins></a>.</p><p><ins class="diff-chg">
A
</ins><a class="tref internalDFN" title="node-object" href="#dfn-node-object"><ins class="diff-chg">
node
object
</ins></a><em class="rfc2119" title="MUST"><ins class="diff-chg">
MUST
</ins>
</em>
be
a
<a class="tref internalDFN" title="json-object" href="#dfn-json-object">
<ins class="diff-new">JSON
object
</ins></a>.<ins class="diff-new">
All
keys
which
are
not
</ins><a class="tref internalDFN" title="iri" href="#dfn-iri"><ins class="diff-new">
IRIs
</ins></a>,<a class="tref internalDFN" title="compact-iri" href="#dfn-compact-iri"><ins class="diff-new">
compact
IRIs
</ins></a>,
<a class="tref internalDFN" title="term" href="#dfn-term">
<del class="diff-old">term
</del>
<ins class="diff-chg">terms
</ins></a><ins class="diff-chg">
valid
in
the
</ins><a class="tref internalDFN" title="active-context" href="#dfn-active-context"><ins class="diff-chg">
active
context
</ins></a>,<ins class="diff-chg">
or
one
of
the
following
</ins><a class="tref internalDFN" title="keyword" href="#dfn-keyword"><ins class="diff-chg">
keywords
</ins></a><em class="rfc2119" title="MUST"><ins class="diff-chg">
MUST
</ins></em><ins class="diff-chg">
be
ignored
when
processed:
</ins></p><ul><li><code><ins class="diff-chg">
@context
</ins></code>,</li><li><code><ins class="diff-chg">
@id
</ins></code>,</li><li><code><ins class="diff-chg">
@graph
</ins></code>,</li><li><code><ins class="diff-chg">
@type
</ins></code>,</li><li><code><ins class="diff-chg">
@reverse
</ins></code>,<ins class="diff-chg">
or
</ins></li><li><code><ins class="diff-chg">
@index
</ins></code></li></ul><p><ins class="diff-chg">
If
the
</ins><a class="tref internalDFN" title="node-object" href="#dfn-node-object"><ins class="diff-chg">
node
object
</ins></a><ins class="diff-chg">
contains
the
</ins><code><ins class="diff-chg">
@context
</ins></code><ins class="diff-chg">
key,
its
value
</ins><em class="rfc2119" title="MUST"><ins class="diff-chg">
MUST
</ins></em><ins class="diff-chg">
be
</ins><a class="tref internalDFN" title="null" href="#dfn-null"><ins class="diff-chg">
null
</ins></a>,<ins class="diff-chg">
an
</ins><a class="tref internalDFN" title="absolute-iri" href="#dfn-absolute-iri"><ins class="diff-chg">
absolute
</ins><abbr title="Internationalized Resource Identifier"><ins class="diff-chg">
IRI
</ins></abbr>
</a>,
a
<del class="diff-old">compact
</del>
<a class="tref internalDFN" title="relative-iri" href="#dfn-relative-iri">
<ins class="diff-chg">relative
</ins>
<abbr title="Internationalized Resource Identifier">
IRI
</abbr>
</a>,
<ins class="diff-new">a
</ins><a class="tref internalDFN" title="context-definition" href="#dfn-context-definition"><ins class="diff-new">
context
definition
</ins></a>,
or
an
<a class="tref internalDFN" title="array" href="#dfn-array">
<ins class="diff-chg">array
</ins></a><ins class="diff-chg">
composed
of
any
of
these.
</ins></p><p><ins class="diff-chg">
If
the
</ins><a class="tref internalDFN" title="node-object" href="#dfn-node-object"><ins class="diff-chg">
node
object
</ins></a><ins class="diff-chg">
contains
the
</ins><code><ins class="diff-chg">
@id
</ins></code><ins class="diff-chg">
key,
its
value
</ins><em class="rfc2119" title="MUST"><ins class="diff-chg">
MUST
</ins></em><ins class="diff-chg">
be
an
</ins><a class="tref internalDFN" title="absolute-iri" href="#dfn-absolute-iri"><ins class="diff-chg">
absolute
</ins><abbr title="Internationalized Resource Identifier"><ins class="diff-chg">
IRI
</ins></abbr></a>,<ins class="diff-chg">
a
</ins><a class="tref internalDFN" title="relative-iri" href="#dfn-relative-iri"><ins class="diff-chg">
relative
</ins><abbr title="Internationalized Resource Identifier"><ins class="diff-chg">
IRI
</ins></abbr>
</a>,
<ins class="diff-new">or
a
</ins><a class="tref internalDFN" title="compact-iri" href="#dfn-compact-iri"><ins class="diff-new">
compact
</ins>
<abbr title="Internationalized Resource Identifier">
IRI
</abbr>
<del class="diff-old">.
An
</del>
</a>
<ins class="diff-chg">(including
</ins><a class="tref internalDFN" title="blank-node-identifier" href="#dfn-blank-node-identifier"><ins class="diff-chg">
blank
node
identifiers
</ins></a><ins class="diff-chg">
).
See
</ins><a class="sectionRef sec-ref" href="#node-identifiers"><ins class="diff-chg">
section
5.3
Node
Identifiers
</ins></a>,<a class="sectionRef sec-ref" href="#compact-iris"><ins class="diff-chg">
section
6.3
Compact
IRIs
</ins></a>,<ins class="diff-chg">
and
</ins><a class="sectionRef sec-ref" href="#identifying-blank-nodes"><ins class="diff-chg">
section
6.14
Identifying
Blank
Nodes
</ins></a><ins class="diff-chg">
for
further
discussion
on
</ins>
<code>
@id
</code>
<del class="diff-old">keyword
and
a
</del>
<ins class="diff-chg">values.
</ins></p><p><ins class="diff-chg">
If
the
</ins><a class="tref internalDFN" title="node-object" href="#dfn-node-object"><ins class="diff-chg">
node
object
</ins></a><ins class="diff-chg">
contains
the
</ins>
<code>
<del class="diff-old">@language
</del>
<ins class="diff-chg">@graph
</ins>
</code>
<del class="diff-old">keyword
must
not
</del>
<ins class="diff-chg">key,
its
value
</ins><em class="rfc2119" title="MUST"><ins class="diff-chg">
MUST
</ins>
</em>
<del class="diff-old">exist
in
the
same
JSON
</del>
<ins class="diff-chg">be
a
</ins><a class="tref internalDFN" title="node-object" href="#dfn-node-object"><ins class="diff-chg">
node
</ins>
object
</a>
<ins class="diff-new">or
an
</ins><a class="tref internalDFN" title="array" href="#dfn-array"><ins class="diff-new">
array
</ins></a><ins class="diff-new">
of
zero
or
more
</ins><a class="tref internalDFN" title="node-object" href="#dfn-node-object"><ins class="diff-new">
node
objects
</ins>
</a>.
<del class="diff-old">An
</del>
<ins class="diff-chg">If
the
</ins><a class="tref internalDFN" title="node-object" href="#dfn-node-object"><ins class="diff-chg">
node
object
</ins></a><ins class="diff-chg">
contains
an
</ins>
<code>
@id
</code>
<del class="diff-old">keyword
and
</del>
<ins class="diff-chg">keyword,
its
value
is
used
as
the
label
of
</ins>
a
<ins class="diff-new">named
graph.
See
</ins><a class="sectionRef sec-ref" href="#named-graphs"><ins class="diff-new">
section
6.13
Named
Graphs
</ins></a><ins class="diff-new">
for
further
discussion
on
</ins>
<code>
<del class="diff-old">@container
</del>
<ins class="diff-chg">@graph
</ins>
</code>
<del class="diff-old">keyword
must
not
exist
in
the
same
</del>
<ins class="diff-chg">values.
As
a
special
case,
if
a
</ins><a class="tref internalDFN" title="json-object" href="#dfn-json-object">
JSON
object
<del class="diff-old">.
A
subject
definition
</del>
</a>
<del class="diff-old">may
contain
a
</del>
<ins class="diff-chg">contains
no
keys
other
than
</ins>
<code>
<del class="diff-old">@context
</del>
<ins class="diff-chg">@graph
</ins>
</code>
<del class="diff-old">property.
A
</del>
<ins class="diff-chg">and
</ins>
<code>
@context
</code>,
<ins class="diff-new">and
the
</ins><a class="tref internalDFN" title="json-object" href="#dfn-json-object"><ins class="diff-new">
JSON
object
</ins></a><ins class="diff-new">
is
the
root
of
the
JSON-LD
document,
the
</ins><a class="tref internalDFN" title="json-object" href="#dfn-json-object"><ins class="diff-new">
JSON
object
</ins></a><ins class="diff-new">
is
not
treated
as
a
</ins><a class="tref internalDFN" title="node-object" href="#dfn-node-object"><ins class="diff-new">
node
object
</ins></a><ins class="diff-new">
;
this
is
used
as
a
way
of
defining
</ins><a class="tref internalDFN" title="node-object" href="#dfn-node-object"><ins class="diff-new">
node
definitions
</ins></a><ins class="diff-new">
that
may
not
form
a
connected
graph.
This
allows
a
</ins><a class="tref internalDFN" title="context" href="#dfn-context"><ins class="diff-new">
context
</ins></a><ins class="diff-new">
to
be
defined
which
is
shared
by
all
of
the
constituent
</ins><a class="tref internalDFN" title="node-object" href="#dfn-node-object"><ins class="diff-new">
node
objects
</ins></a>.</p><p><ins class="diff-new">
If
the
</ins><a class="tref internalDFN" title="node-object" href="#dfn-node-object"><ins class="diff-new">
node
object
</ins></a><ins class="diff-new">
contains
the
</ins><code><ins class="diff-new">
@type
</ins>
</code>
<ins class="diff-new">key,
its
</ins>
value
<del class="diff-old">must
not
</del>
<em class="rfc2119" title="MUST">
<ins class="diff-chg">MUST
</ins>
</em>
<del class="diff-old">contain
</del>
<ins class="diff-chg">be
either
</ins>
an
<del class="diff-old">embedded
</del>
<a class="tref internalDFN" title="absolute-iri" href="#dfn-absolute-iri">
<ins class="diff-chg">absolute
</ins><abbr title="Internationalized Resource Identifier"><ins class="diff-chg">
IRI
</ins></abbr></a>,<ins class="diff-chg">
a
</ins><a class="tref internalDFN" title="relative-iri" href="#dfn-relative-iri"><ins class="diff-chg">
relative
</ins><abbr title="Internationalized Resource Identifier"><ins class="diff-chg">
IRI
</ins></abbr></a>,<ins class="diff-chg">
a
</ins><a class="tref internalDFN" title="compact-iri" href="#dfn-compact-iri"><ins class="diff-chg">
compact
</ins><abbr title="Internationalized Resource Identifier"><ins class="diff-chg">
IRI
</ins></abbr></a><ins class="diff-chg">
(including
</ins><a class="tref internalDFN" title="blank-node-identifier" href="#dfn-blank-node-identifier"><ins class="diff-chg">
blank
node
identifiers
</ins></a><ins class="diff-chg">
),
a
</ins><a class="tref internalDFN" title="term" href="#dfn-term"><ins class="diff-chg">
term
</ins></a><ins class="diff-chg">
defined
in
the
</ins><a class="tref internalDFN" title="active-context" href="#dfn-active-context"><ins class="diff-chg">
active
context
</ins></a><ins class="diff-chg">
expanding
into
an
</ins><a class="tref internalDFN" title="absolute-iri" href="#dfn-absolute-iri"><ins class="diff-chg">
absolute
</ins><abbr title="Internationalized Resource Identifier"><ins class="diff-chg">
IRI
</ins></abbr></a>,<ins class="diff-chg">
or
an
</ins><a class="tref internalDFN" title="array" href="#dfn-array"><ins class="diff-chg">
array
</ins></a><ins class="diff-chg">
of
any
of
these.
See
</ins><a class="sectionRef sec-ref" href="#specifying-the-type"><ins class="diff-chg">
section
5.4
Specifying
the
Type
</ins></a><ins class="diff-chg">
for
further
discussion
on
</ins>
<code>
<del class="diff-old">@context
</del>
<ins class="diff-chg">@type
</ins>
</code>
<del class="diff-old">definition.
The
value
associated
with
</del>
<ins class="diff-chg">values.
</ins></p><p><ins class="diff-chg">
If
the
</ins><a class="tref internalDFN" title="node-object" href="#dfn-node-object"><ins class="diff-chg">
node
object
</ins></a><ins class="diff-chg">
contains
</ins>
the
<code>
<del class="diff-old">@context
</del>
<ins class="diff-chg">@reverse
</ins>
</code>
<del class="diff-old">keyword
must
</del>
<ins class="diff-chg">key,
its
value
</ins><em class="rfc2119" title="MUST"><ins class="diff-chg">
MUST
</ins>
</em>
be
a
<del class="diff-old">string
expanding
to
</del>
<a class="tref internalDFN" title="json-object" href="#dfn-json-object">
<ins class="diff-chg">JSON
object
</ins></a><ins class="diff-chg">
containing
members
representing
reverse
properties.
Each
value
of
such
a
reverse
property
</ins><em class="rfc2119" title="MUST"><ins class="diff-chg">
MUST
</ins></em><ins class="diff-chg">
be
</ins>
an
<a class="tref internalDFN" title="absolute-iri" href="#dfn-absolute-iri">
<ins class="diff-chg">absolute
</ins><abbr title="Internationalized Resource Identifier"><ins class="diff-chg">
IRI
</ins></abbr>
</a>,
<ins class="diff-new">a
</ins><a class="tref internalDFN" title="relative-iri" href="#dfn-relative-iri"><ins class="diff-new">
relative
</ins>
<abbr title="Internationalized Resource Identifier">
IRI
</abbr>
</a>,
a
<del class="diff-old">JSON
object
</del>
<a class="tref internalDFN" title="compact-iri" href="#dfn-compact-iri">
<ins class="diff-chg">compact
</ins><abbr title="Internationalized Resource Identifier"><ins class="diff-chg">
IRI
</ins></abbr>
</a>,
<del class="diff-old">null,
</del>
<ins class="diff-chg">a
</ins><a class="tref internalDFN" title="blank-node-identifier" href="#dfn-blank-node-identifier"><ins class="diff-chg">
blank
node
identifier
</ins></a>,<ins class="diff-chg">
a
</ins><a class="tref internalDFN" title="node-object" href="#dfn-node-object"><ins class="diff-chg">
node
object
</ins></a>
or
an
<a class="tref internalDFN" title="array" href="#dfn-array">
array
</a>
containing
a
combination
of
<ins class="diff-new">these.
</ins></p><p><ins class="diff-new">
If
</ins>
the
<del class="diff-old">allowed
values.
The
value
associated
with
</del>
<a class="tref internalDFN" title="node-object" href="#dfn-node-object">
<ins class="diff-chg">node
object
</ins></a><ins class="diff-chg">
contains
</ins>
the
<del class="diff-old">keys
used
in
a
</del>
<code>
<del class="diff-old">@context
</del>
<ins class="diff-chg">@index
</ins>
</code>
<del class="diff-old">must
</del>
<ins class="diff-chg">key,
its
value
</ins><em class="rfc2119" title="MUST"><ins class="diff-chg">
MUST
</ins>
</em>
be
a
<a class="tref internalDFN" title="string" href="#dfn-string">
<ins class="diff-new">string
</ins></a>.<ins class="diff-new">
See
</ins><a class="sectionRef sec-ref" href="#data-indexing"><ins class="diff-new">
section
6.16
Data
Indexing
</ins></a><ins class="diff-new">
for
further
discussion
on
</ins>
<code>
<del class="diff-old">null
,
</del>
<ins class="diff-chg">@index
</ins></code><ins class="diff-chg">
values.
</ins></p><p><ins class="diff-chg">
Keys
in
a
</ins><a class="tref internalDFN" title="node-object" href="#dfn-node-object"><ins class="diff-chg">
node
object
</ins></a><ins class="diff-chg">
that
are
not
</ins><a class="tref internalDFN" title="keyword" href="#dfn-keyword"><ins class="diff-chg">
keywords
</ins></a><em class="rfc2119" title="MAY"><ins class="diff-chg">
MAY
</ins></em><ins class="diff-chg">
expand
to
</ins>
an
<a class="tref internalDFN" title="absolute-iri" href="#dfn-absolute-iri">
<ins class="diff-chg">absolute
</ins><abbr title="Internationalized Resource Identifier"><ins class="diff-chg">
IRI
</ins></abbr>
</a>
<ins class="diff-new">using
the
</ins><a class="tref internalDFN" title="active-context" href="#dfn-active-context"><ins class="diff-new">
active
context
</ins></a>.<ins class="diff-new">
The
values
associated
with
keys
that
expand
to
an
</ins><a class="tref internalDFN" title="absolute-iri" href="#dfn-absolute-iri"><ins class="diff-new">
absolute
</ins>
<abbr title="Internationalized Resource Identifier">
IRI
</abbr>
</a>
<em class="rfc2119" title="MUST">
<ins class="diff-new">MUST
</ins></em><ins class="diff-new">
be
one
of
the
following:
</ins></p><ul><li><a class="tref internalDFN" title="string" href="#dfn-string"><ins class="diff-new">
string
</ins></a>,</li><li><a class="tref internalDFN" title="number" href="#dfn-number"><ins class="diff-new">
number
</ins></a>,</li><li><a class="tref internalDFN" title="true" href="#dfn-true"><ins class="diff-new">
true
</ins></a>,</li><li><a class="tref internalDFN" title="false" href="#dfn-false"><ins class="diff-new">
false
</ins></a>,</li><li><a class="tref internalDFN" title="null" href="#dfn-null"><ins class="diff-new">
null
</ins></a>,</li><li><a class="tref internalDFN" title="node-object" href="#dfn-node-object"><ins class="diff-new">
node
object
</ins></a>,</li><li><a class="tref internalDFN" title="value-object" href="#dfn-value-object"><ins class="diff-new">
value
object
</ins></a>,</li><li><a class="tref internalDFN" title="list-object" href="#dfn-list-object"><ins class="diff-new">
list
object
</ins></a>,</li><li><a class="tref internalDFN" title="set-object" href="#dfn-set-object"><ins class="diff-new">
set
object
</ins>
</a>,
</li>
<li>
<ins class="diff-new">an
</ins><a class="tref internalDFN" title="array" href="#dfn-array"><ins class="diff-new">
array
</ins></a><ins class="diff-new">
of
zero
</ins>
or
<ins class="diff-new">more
of
the
possibilities
above,
</ins></li><li>
a
<del class="diff-old">JSON
object
.
</del>
<a class="tref internalDFN" title="language-map" href="#dfn-language-map">
<ins class="diff-chg">language
map
</ins></a>,<ins class="diff-chg">
or
</ins>
</li>
<li>
<del class="diff-old">For
each
</del>
<ins class="diff-chg">an
</ins><a class="tref internalDFN" title="index-map" href="#dfn-index-map"><ins class="diff-chg">
index
map
</ins></a></li></ul></div><div class="normative section" id="value-objects"><h3><span class="secno"><ins class="diff-chg">
B.3
</ins></span><ins class="diff-chg">
Value
Objects
</ins></h3><p><ins class="diff-chg">
A
</ins><dfn title="value-object" id="dfn-value-object">
value
<del class="diff-old">that
</del>
<ins class="diff-chg">object
</ins></dfn>
is
<ins class="diff-new">used
to
explicitly
associate
</ins>
a
<ins class="diff-chg">type
or
a
language
with
a
value
to
create
a
</ins><a class="tref internalDFN" title="typed-value" href="#dfn-typed-value"><ins class="diff-chg">
typed
value
</ins></a><ins class="diff-chg">
or
a
</ins><a class="tref internalDFN" title="language-tagged-string" href="#dfn-language-tagged-string"><ins class="diff-chg">
language-tagged
string
</ins></a>.</p><p><ins class="diff-chg">
A
</ins><a class="tref internalDFN" title="value-object" href="#dfn-value-object"><ins class="diff-chg">
value
object
</ins></a><em class="rfc2119" title="MUST"><ins class="diff-chg">
MUST
</ins></em><ins class="diff-chg">
be
a
</ins><a class="tref internalDFN" title="json-object" href="#dfn-json-object">
JSON
object
</a>
<del class="diff-old">that
is
associated
with
</del>
<ins class="diff-chg">containing
the
</ins><code><ins class="diff-chg">
@value
</ins></code><ins class="diff-chg">
key.
It
</ins><em class="rfc2119" title="MAY"><ins class="diff-chg">
MAY
</ins></em><ins class="diff-chg">
also
contain
</ins>
a
<del class="diff-old">key
in
</del>
<code>
<ins class="diff-chg">@type
</ins></code>,
a
<code>
<ins class="diff-new">@language
</ins></code>,<ins class="diff-new">
an
</ins><code><ins class="diff-new">
@index
</ins></code>,<ins class="diff-new">
or
an
</ins><code>
@context
<del class="diff-old">:
</del>
</code>
<ins class="diff-chg">key
but
</ins><em class="rfc2119" title="MUST NOT"><ins class="diff-chg">
MUST
NOT
</ins></em><ins class="diff-chg">
contain
both
a
</ins>
<code>
<del class="diff-old">@id
</del>
<ins class="diff-chg">@type
</ins>
</code>
and
<ins class="diff-new">a
</ins>
<code>
<del class="diff-old">@type
</del>
<ins class="diff-chg">@language
</ins>
</code>
<del class="diff-old">must
</del>
<ins class="diff-chg">key
at
the
same
time.
A
</ins><a class="tref internalDFN" title="value-object" href="#dfn-value-object"><ins class="diff-chg">
value
object
</ins></a><em class="rfc2119" title="MUST NOT"><ins class="diff-chg">
MUST
NOT
</ins>
</em>
<del class="diff-old">be
</del>
<ins class="diff-chg">contain
any
other
keys
that
expand
to
</ins>
an
<a class="tref internalDFN" title="absolute-iri" href="#dfn-absolute-iri">
<ins class="diff-chg">absolute
</ins>
<abbr title="Internationalized Resource Identifier">
IRI
</abbr>
</a>
or
<a class="tref internalDFN" title="keyword" href="#dfn-keyword">
<ins class="diff-new">keyword
</ins></a>.</p><p><ins class="diff-new">
The
value
associated
with
the
</ins>
<code>
<ins class="diff-new">@value
</ins></code><ins class="diff-new">
key
</ins><em class="rfc2119" title="MUST"><ins class="diff-new">
MUST
</ins></em><ins class="diff-new">
be
either
a
</ins><a class="tref internalDFN" title="string" href="#dfn-string"><ins class="diff-new">
string
</ins></a>,<ins class="diff-new">
a
</ins><a class="tref internalDFN" title="number" href="#dfn-number"><ins class="diff-new">
number
</ins></a>,<a class="tref internalDFN" title="true" href="#dfn-true"><ins class="diff-new">
true
</ins></a>,<a class="tref internalDFN" title="false" href="#dfn-false"><ins class="diff-new">
false
</ins></a><ins class="diff-new">
or
</ins><a class="tref internalDFN" title="null" href="#dfn-null">
null
</a>.
</p>
<p>
<ins class="diff-new">The
value
associated
with
the
</ins><code><ins class="diff-new">
@type
</ins>
</code>
<ins class="diff-new">key
</ins><em class="rfc2119" title="MUST"><ins class="diff-new">
MUST
</ins></em><ins class="diff-new">
be
a
</ins><a class="tref internalDFN" title="term" href="#dfn-term"><ins class="diff-new">
term
</ins></a>,<ins class="diff-new">
a
</ins><a class="tref internalDFN" title="compact-iri" href="#dfn-compact-iri"><ins class="diff-new">
compact
</ins><abbr title="Internationalized Resource Identifier"><ins class="diff-new">
IRI
</ins></abbr>
</a>,
<ins class="diff-chg">an
</ins><a class="tref internalDFN" title="absolute-iri" href="#dfn-absolute-iri"><ins class="diff-chg">
absolute
</ins><abbr title="Internationalized Resource Identifier"><ins class="diff-chg">
IRI
</ins></abbr>
</a>,
<ins class="diff-new">a
</ins><a class="tref internalDFN" title="relative-iri" href="#dfn-relative-iri"><ins class="diff-new">
relative
</ins><abbr title="Internationalized Resource Identifier"><ins class="diff-new">
IRI
</ins></abbr></a>,<ins class="diff-new">
or
</ins><a class="tref internalDFN" title="null" href="#dfn-null"><ins class="diff-new">
null
</ins></a>.</p><p><ins class="diff-new">
The
value
associated
with
the
</ins>
<code>
<del class="diff-old">@container
</del>
<ins class="diff-chg">@language
</ins>
</code>
<del class="diff-old">must
</del>
<ins class="diff-chg">key
</ins><em class="rfc2119" title="MUST"><ins class="diff-chg">
MUST
</ins>
</em>
<ins class="diff-new">have
the
lexical
form
described
in
[
</ins><cite><a class="bibref" href="#bib-BCP47"><ins class="diff-new">
BCP47
</ins></a></cite><ins class="diff-new">
],
or
</ins>
be
<a class="tref internalDFN" title="null" href="#dfn-null">
<ins class="diff-new">null
</ins></a>.</p><p><ins class="diff-new">
The
value
</ins>
associated
with
<ins class="diff-new">the
</ins><code><ins class="diff-new">
@index
</ins></code><ins class="diff-new">
key
</ins><em class="rfc2119" title="MUST"><ins class="diff-new">
MUST
</ins></em><ins class="diff-new">
be
</ins>
a
<a class="tref internalDFN" title="string" href="#dfn-string">
<ins class="diff-new">string
</ins></a>.</p><p><ins class="diff-new">
See
</ins><a class="sectionRef sec-ref" href="#typed-values"><ins class="diff-new">
section
6.4
Typed
Values
</ins></a><ins class="diff-new">
and
</ins><a class="sectionRef sec-ref" href="#string-internationalization"><ins class="diff-new">
section
6.9
String
Internationalization
</ins></a><ins class="diff-new">
for
more
information
on
</ins><a class="tref internalDFN" title="value-object" href="#dfn-value-object">
value
<ins class="diff-new">objects
</ins></a>.</p></div><div class="normative section" id="lists-and-sets"><h3><span class="secno"><ins class="diff-new">
B.4
</ins></span><ins class="diff-new">
Lists
and
Sets
</ins></h3><p><ins class="diff-new">
A
</ins><a class="tref internalDFN" title="list" href="#dfn-list"><ins class="diff-new">
list
</ins></a><ins class="diff-new">
represents
an
</ins><em><ins class="diff-new">
ordered
</ins></em><ins class="diff-new">
set
</ins>
of
<del class="diff-old">either
</del>
<ins class="diff-chg">values.
A
set
represents
an
</ins><em><ins class="diff-chg">
unordered
</ins></em><ins class="diff-chg">
set
of
values.
Unless
otherwise
specified,
</ins><a class="tref internalDFN" title="array" href="#dfn-array"><ins class="diff-chg">
arrays
</ins></a><ins class="diff-chg">
are
unordered
in
JSON-LD.
As
such,
the
</ins><code><ins class="diff-chg">
@set
</ins></code><ins class="diff-chg">
keyword,
when
used
in
the
body
of
a
JSON-LD
document,
represents
just
syntactic
sugar
which
is
optimized
away
when
processing
the
document.
However,
it
is
very
helpful
when
used
within
the
context
of
a
document.
Values
of
terms
associated
with
a
</ins>
<code>
@set
</code>
or
<code>
@list
<del class="diff-old">.
@language
</del>
</code>
<del class="diff-old">must
</del>
<ins class="diff-chg">container
will
always
</ins>
be
<ins class="diff-new">represented
in
the
form
of
an
</ins><a class="tref internalDFN" title="array" href="#dfn-array"><ins class="diff-new">
array
</ins></a><ins class="diff-new">
when
</ins>
a
<del class="diff-old">string
expressed
</del>
<ins class="diff-chg">document
is
processed—even
if
there
is
just
a
single
value
that
would
otherwise
be
optimized
to
a
non-array
form
</ins>
in
<del class="diff-old">[
BCP47
</del>
<a href="#compact-document-form">
<ins class="diff-chg">compact
document
form
</ins></a>.<ins class="diff-chg">
This
simplifies
post-processing
of
the
data
as
the
data
is
always
in
a
deterministic
form.
</ins></p><p><ins class="diff-chg">
A
</ins><dfn title="list-object" id="dfn-list-object"><ins class="diff-chg">
list
object
</ins></dfn><em class="rfc2119" title="MUST"><ins class="diff-chg">
MUST
</ins></em><ins class="diff-chg">
be
a
</ins><a class="tref internalDFN" title="json-object" href="#dfn-json-object"><ins class="diff-chg">
JSON
object
</ins>
</a>
<ins class="diff-new">that
contains
no
keys
that
expand
to
an
</ins><a class="tref internalDFN" title="absolute-iri" href="#dfn-absolute-iri"><ins class="diff-new">
absolute
</ins><abbr title="Internationalized Resource Identifier"><ins class="diff-new">
IRI
</ins></abbr>
<del class="diff-old">]
</del>
</a>
or
<a class="tref internalDFN" title="keyword" href="#dfn-keyword">
<ins class="diff-new">keyword
</ins></a><ins class="diff-new">
other
than
</ins>
<code>
<del class="diff-old">null
</del>
<ins class="diff-chg">@list
</ins></code>,<code><ins class="diff-chg">
@context
</ins></code>,<ins class="diff-chg">
and
</ins><code><ins class="diff-chg">
@index
</ins>
</code>.
<del class="diff-old">Any
other
property
must
</del>
</p>
<p>
<ins class="diff-chg">A
</ins><dfn title="set-object" id="dfn-set-object"><ins class="diff-chg">
set
object
</ins></dfn><em class="rfc2119" title="MUST"><ins class="diff-chg">
MUST
</ins>
</em>
be
<del class="diff-old">ignored
by
</del>
a
<del class="diff-old">JSON-LD
processor
</del>
<a class="tref internalDFN" title="json-object" href="#dfn-json-object">
<ins class="diff-chg">JSON
object
</ins></a><ins class="diff-chg">
that
contains
no
keys
that
expand
to
an
</ins><a class="tref internalDFN" title="absolute-iri" href="#dfn-absolute-iri"><ins class="diff-chg">
absolute
</ins><abbr title="Internationalized Resource Identifier"><ins class="diff-chg">
IRI
</ins></abbr></a><ins class="diff-chg">
or
</ins><a class="tref internalDFN" title="keyword" href="#dfn-keyword"><ins class="diff-chg">
keyword
</ins></a><ins class="diff-chg">
other
than
</ins><code><ins class="diff-chg">
@list
</ins></code>,<code><ins class="diff-chg">
@context
</ins></code>,
and
<del class="diff-old">must
</del>
<code>
<ins class="diff-chg">@index
</ins></code>.<ins class="diff-chg">
Please
note
that
the
</ins><code><ins class="diff-chg">
@index
</ins></code><ins class="diff-chg">
key
will
</ins>
be
<del class="diff-old">preserved
in
compaction
</del>
<ins class="diff-chg">ignored
when
being
processed.
</ins></p><p><ins class="diff-chg">
In
both
cases,
the
value
associated
with
the
keys
</ins><code><ins class="diff-chg">
@list
</ins></code>
and
<del class="diff-old">framing.
</del>
<code>
<ins class="diff-chg">@set
</ins></code><em class="rfc2119" title="MUST"><ins class="diff-chg">
MUST
</ins></em><ins class="diff-chg">
be
one
of
the
following
types:
</ins></p><ul><li><a class="tref internalDFN" title="string" href="#dfn-string"><ins class="diff-chg">
string
</ins></a>,
</li>
<li>
<a class="tref internalDFN" title="number" href="#dfn-number">
<ins class="diff-chg">number
</ins></a>,</li><li><a class="tref internalDFN" title="true" href="#dfn-true"><ins class="diff-chg">
true
</ins></a>,</li><li><a class="tref internalDFN" title="false" href="#dfn-false"><ins class="diff-chg">
false
</ins></a>,</li><li><a class="tref internalDFN" title="null" href="#dfn-null"><ins class="diff-chg">
null
</ins></a>,</li><li><a class="tref internalDFN" title="node-object" href="#dfn-node-object"><ins class="diff-chg">
node
object
</ins></a>,</li><li><a class="tref internalDFN" title="value-object" href="#dfn-value-object"><ins class="diff-chg">
value
object
</ins></a>,<ins class="diff-chg">
or
</ins>
</li>
<li>
<ins class="diff-new">an
</ins><a class="tref internalDFN" title="array" href="#dfn-array"><ins class="diff-new">
array
</ins></a><ins class="diff-new">
of
zero
or
more
of
the
above
possibilities
</ins></li></ul><p><ins class="diff-new">
See
</ins><a class="sectionRef sec-ref" href="#sets-and-lists"><ins class="diff-new">
section
6.11
Sets
and
Lists
</ins></a><ins class="diff-new">
for
further
discussion
on
sets
and
lists.
</ins></p></div><div class="normative section" id="language-maps"><h3><span class="secno"><ins class="diff-new">
B.5
</ins></span><ins class="diff-new">
Language
Maps
</ins></h3><p>
A
<del class="diff-old">subject
definition
</del>
<dfn title="language-map" id="dfn-language-map">
<ins class="diff-chg">language
map
</ins></dfn><ins class="diff-chg">
is
used
to
associate
a
language
with
a
value
in
a
way
that
allows
easy
programmatic
access.
A
</ins><a class="tref internalDFN" title="language-map" href="#dfn-language-map"><ins class="diff-chg">
language
map
</ins>
</a>
may
<del class="diff-old">have
an
</del>
<ins class="diff-chg">be
used
as
a
term
value
within
a
</ins><a class="tref internalDFN" title="node-object" href="#dfn-node-object"><ins class="diff-chg">
node
object
</ins></a><ins class="diff-chg">
if
the
term
is
defined
with
</ins>
<code>
<del class="diff-old">@graph
</del>
<ins class="diff-chg">@container
</ins>
</code>
<del class="diff-old">property.
</del>
<ins class="diff-chg">set
to
</ins><code><ins class="diff-chg">
@language
</ins></code>.
The
<del class="diff-old">value
</del>
<ins class="diff-chg">keys
</ins>
of
a
<del class="diff-old">@graph
property
must
</del>
<a class="tref internalDFN" title="language-map" href="#dfn-language-map">
<ins class="diff-chg">language
map
</ins></a><em class="rfc2119" title="MUST"><ins class="diff-chg">
MUST
</ins>
</em>
be
<del class="diff-old">a
subject
definition
</del>
<a class="tref internalDFN" title="string" href="#dfn-string">
<ins class="diff-chg">strings
</ins></a><ins class="diff-chg">
representing
[
</ins><cite><a class="bibref" href="#bib-BCP47"><ins class="diff-chg">
BCP47
</ins>
</a>
</cite>
<ins class="diff-new">]
language
codes
with
and
the
values
</ins><em class="rfc2119" title="MUST"><ins class="diff-new">
MUST
</ins></em><ins class="diff-new">
be
any
of
the
following
types:
</ins></p><ul><li><a class="tref internalDFN" title="null" href="#dfn-null"><ins class="diff-new">
null
</ins></a>,</li><li><a class="tref internalDFN" title="string" href="#dfn-string"><ins class="diff-new">
string
</ins></a>,
or
</li>
<li>
an
<a class="tref internalDFN" title="array" href="#dfn-array">
array
</a>
of
zero
or
more
<del class="diff-old">subject
definitions
.
</del>
<ins class="diff-chg">of
the
above
possibilities
</ins>
</li>
<del class="diff-old">A
JSON
object
</del>
</ul>
<p>
<ins class="diff-chg">See
</ins><a class="sectionRef sec-ref" href="#string-internationalization"><ins class="diff-chg">
section
6.9
String
Internationalization
</ins>
</a>
<del class="diff-old">containing
</del>
<ins class="diff-chg">for
further
discussion
on
language
maps.
</ins></p></div><div class="normative section" id="index-maps"><h3><span class="secno"><ins class="diff-chg">
B.6
</ins></span><ins class="diff-chg">
Index
Maps
</ins></h3><p><ins class="diff-chg">
An
</ins><dfn title="index-map" id="dfn-index-map"><ins class="diff-chg">
index
map
</ins></dfn><ins class="diff-chg">
allows
keys
that
have
no
semantic
meaning,
but
should
be
preserved
regardless,
to
be
used
in
JSON-LD
documents.
An
</ins><a class="tref internalDFN" title="index-map" href="#dfn-index-map"><ins class="diff-chg">
index
map
</ins></a><ins class="diff-chg">
may
be
used
as
</ins>
a
<a class="tref internalDFN" title="term" href="#dfn-term">
<ins class="diff-new">term
</ins></a><ins class="diff-new">
value
within
a
</ins><a class="tref internalDFN" title="node-object" href="#dfn-node-object"><ins class="diff-new">
node
object
</ins></a><ins class="diff-new">
if
the
term
is
defined
with
</ins>
<code>
<del class="diff-old">@set
</del>
<ins class="diff-chg">@container
</ins>
</code>
<del class="diff-old">key
must
not
</del>
<ins class="diff-chg">set
to
</ins><code><ins class="diff-chg">
@index
</ins></code>.<ins class="diff-chg">
The
values
of
the
members
of
an
</ins><a class="tref internalDFN" title="index-map" href="#dfn-index-map"><ins class="diff-chg">
index
map
</ins></a><em class="rfc2119" title="MUST"><ins class="diff-chg">
MUST
</ins>
</em>
<del class="diff-old">have
any
other
keys.
</del>
<ins class="diff-chg">be
one
of
the
following
types:
</ins></p><ul><li><a class="tref internalDFN" title="string" href="#dfn-string"><ins class="diff-chg">
string
</ins></a>,</li><li><a class="tref internalDFN" title="number" href="#dfn-number"><ins class="diff-chg">
number
</ins></a>,</li><li><a class="tref internalDFN" title="true" href="#dfn-true"><ins class="diff-chg">
true
</ins></a>,</li><li><a class="tref internalDFN" title="false" href="#dfn-false"><ins class="diff-chg">
false
</ins></a>,</li><li><a class="tref internalDFN" title="null" href="#dfn-null"><ins class="diff-chg">
null
</ins></a>,</li><li><a class="tref internalDFN" title="node-object" href="#dfn-node-object"><ins class="diff-chg">
node
object
</ins></a>,</li><li><a class="tref internalDFN" title="value-object" href="#dfn-value-object"><ins class="diff-chg">
value
object
</ins></a>,</li><li><a class="tref internalDFN" title="list-object" href="#dfn-list-object"><ins class="diff-chg">
list
object
</ins></a>,</li><li><a class="tref internalDFN" title="set-object" href="#dfn-set-object"><ins class="diff-chg">
set
object
</ins></a>,
</li>
<li>
<ins class="diff-new">an
</ins><a class="tref internalDFN" title="array" href="#dfn-array"><ins class="diff-new">
array
</ins></a><ins class="diff-new">
of
zero
or
more
of
the
above
possibilities
</ins></li></ul><p><ins class="diff-new">
See
</ins><a class="sectionRef sec-ref" href="#data-indexing"><ins class="diff-new">
section
6.16
Data
Indexing
</ins></a><ins class="diff-new">
for
further
information
on
this
topic.
</ins></p></div><div class="normative section" id="context-definitions"><h3><span class="secno"><ins class="diff-new">
B.7
</ins></span><ins class="diff-new">
Context
Definitions
</ins></h3><p>
A
<dfn title="context-definition" id="dfn-context-definition">
<ins class="diff-chg">context
definition
</ins></dfn><ins class="diff-chg">
defines
a
</ins><a class="tref internalDFN" title="local-context" href="#dfn-local-context"><ins class="diff-chg">
local
context
</ins></a><ins class="diff-chg">
in
a
</ins><a class="tref internalDFN" title="node-object" href="#dfn-node-object"><ins class="diff-chg">
node
object
</ins></a>.</p><p><ins class="diff-chg">
A
</ins><a class="tref internalDFN" title="context-definition" href="#dfn-context-definition"><ins class="diff-chg">
context
definition
</ins></a><em class="rfc2119" title="MUST"><ins class="diff-chg">
MUST
</ins></em><ins class="diff-chg">
be
a
</ins><a class="tref internalDFN" title="json-object" href="#dfn-json-object">
JSON
object
</a>
<del class="diff-old">containing
</del>
<ins class="diff-chg">whose
keys
</ins><em class="rfc2119" title="MUST"><ins class="diff-chg">
MUST
</ins></em><ins class="diff-chg">
either
be
</ins><a class="tref internalDFN" title="term" href="#dfn-term"><ins class="diff-chg">
terms
</ins></a>,<a class="tref internalDFN" title="compact-iri" href="#dfn-compact-iri"><ins class="diff-chg">
compact
IRIs
</ins></a>,<a class="tref internalDFN" title="absolute-iri" href="#dfn-absolute-iri"><ins class="diff-chg">
absolute
IRIs
</ins></a>,<ins class="diff-chg">
or
the
</ins><a class="tref internalDFN" title="keyword" href="#dfn-keyword"><ins class="diff-chg">
keywords
</ins></a><code><ins class="diff-chg">
@language
</ins></code>,<code><ins class="diff-chg">
@base
</ins></code>,<ins class="diff-chg">
and
</ins><code><ins class="diff-chg">
@vocab
</ins></code>.</p><p><ins class="diff-chg">
If
the
</ins><a class="tref internalDFN" title="context-definition" href="#dfn-context-definition"><ins class="diff-chg">
context
definition
</ins></a><ins class="diff-chg">
has
</ins>
a
<code>
<del class="diff-old">@list
</del>
<ins class="diff-chg">@language
</ins>
</code>
<del class="diff-old">key
must
not
</del>
<ins class="diff-chg">key,
its
value
</ins><em class="rfc2119" title="MUST"><ins class="diff-chg">
MUST
</ins>
</em>
have
<del class="diff-old">any
other
keys.
The
</del>
<ins class="diff-chg">the
lexical
form
described
in
[
</ins><cite><a class="bibref" href="#bib-BCP47"><ins class="diff-chg">
BCP47
</ins></a></cite><ins class="diff-chg">
]
or
be
</ins><a class="tref internalDFN" title="null" href="#dfn-null"><ins class="diff-chg">
null
</ins></a>.</p><p><ins class="diff-chg">
If
the
</ins><a class="tref internalDFN" title="context-definition" href="#dfn-context-definition"><ins class="diff-chg">
context
definition
</ins></a><ins class="diff-chg">
has
a
</ins><code><ins class="diff-chg">
@base
</ins></code><ins class="diff-chg">
key,
its
</ins>
value
<del class="diff-old">of
</del>
<em class="rfc2119" title="MUST">
<ins class="diff-chg">MUST
</ins></em><ins class="diff-chg">
be
</ins>
an
<a class="tref internalDFN" title="absolute-iri" href="#dfn-absolute-iri">
<ins class="diff-new">absolute
</ins><abbr title="Internationalized Resource Identifier"><ins class="diff-new">
IRI
</ins></abbr></a><ins class="diff-new">
or
</ins><a class="tref internalDFN" title="null" href="#dfn-null"><ins class="diff-new">
null
</ins></a>.</p><div class="issue atrisk"><div class="issue-title"><span><ins class="diff-new">
Feature
at
Risk
1
</ins></span>:<ins class="diff-new">
@base
keyword
</ins></div><div class="atrisk"><p class="atrisk-head"><ins class="diff-new">
Note:
This
feature
is
</ins><a href="http://www.w3.org/2005/10/Process-20051014/tr#cfi"><ins class="diff-new">
&quot;at
risk&quot;
</ins></a><ins class="diff-new">
and
may
be
removed
from
this
specification
based
on
feedback.
Please
send
feedback
to
</ins><a href="mailto:public-rdf-comments@w3.org"><ins class="diff-new">
public-rdf-comments@w3.org
</ins></a>.<ins class="diff-new">
For
the
current
status
see
</ins><a href="http://www.w3.org/2011/rdf-wg/wiki/JSON-LD_Features_at_Risk"><ins class="diff-new">
features
&quot;at
risk&quot;
in
JSON-LD
1.0
</ins></a></p><p><ins class="diff-new">
This
feature
is
at
risk
as
the
fact
that
a
document
may
have
multiple
base
IRIs
is
potentially
confusing
for
developers.
It
is
also
being
discussed
whether
relative
IRIs
are
allowed
as
values
of
</ins>
<code>
<del class="diff-old">@set
</del>
<ins class="diff-chg">@base
</ins>
</code>
or
<ins class="diff-new">whether
the
empty
string
should
be
used
to
explicitly
specify
that
there
isn't
a
base
</ins><abbr title="Internationalized Resource Identifier"><ins class="diff-new">
IRI
</ins></abbr>,<ins class="diff-new">
which
could
be
used
to
ensure
that
relative
IRIs
remain
relative
when
expanding.
</ins></p></div></div><p><ins class="diff-new">
If
the
</ins><a class="tref internalDFN" title="context-definition" href="#dfn-context-definition"><ins class="diff-new">
context
definition
</ins></a><ins class="diff-new">
has
a
</ins>
<code>
<del class="diff-old">@list
</del>
<ins class="diff-chg">@vocab
</ins>
</code>
<del class="diff-old">key
can
</del>
<ins class="diff-chg">key,
its
value
</ins><em class="rfc2119" title="MUST"><ins class="diff-chg">
MUST
</ins></em>
be
a
<del class="diff-old">string,
</del>
<a class="tref internalDFN" title="absolute-iri" href="#dfn-absolute-iri">
<ins class="diff-chg">absolute
</ins><abbr title="Internationalized Resource Identifier"><ins class="diff-chg">
IRI
</ins></abbr></a>,
a
<del class="diff-old">number,
</del>
<a class="tref internalDFN" title="compact-iri" href="#dfn-compact-iri">
<ins class="diff-chg">compact
</ins><abbr title="Internationalized Resource Identifier"><ins class="diff-chg">
IRI
</ins></abbr></a>,
a
<del class="diff-old">JSON
object
</del>
<a class="tref internalDFN" title="term" href="#dfn-term">
<ins class="diff-chg">term
</ins>
</a>,
or
<a class="tref internalDFN" title="null" href="#dfn-null">
<ins class="diff-new">null
</ins></a>.</p><p><ins class="diff-new">
The
value
of
keys
that
are
not
</ins><a class="tref internalDFN" title="keyword" href="#dfn-keyword"><ins class="diff-new">
keywords
</ins></a><em class="rfc2119" title="MUST"><ins class="diff-new">
MUST
</ins></em><ins class="diff-new">
be
either
</ins>
an
<del class="diff-old">array
</del>
<a class="tref internalDFN" title="absolute-iri" href="#dfn-absolute-iri">
<ins class="diff-chg">absolute
</ins><abbr title="Internationalized Resource Identifier"><ins class="diff-chg">
IRI
</ins></abbr></a>,<ins class="diff-chg">
a
</ins><a class="tref internalDFN" title="compact-iri" href="#dfn-compact-iri"><ins class="diff-chg">
compact
</ins><abbr title="Internationalized Resource Identifier"><ins class="diff-chg">
IRI
</ins></abbr></a>,<ins class="diff-chg">
a
</ins><a class="tref internalDFN" title="term" href="#dfn-term"><ins class="diff-chg">
term
</ins></a>,<ins class="diff-chg">
a
</ins><a class="tref internalDFN" title="blank-node-identifier" href="#dfn-blank-node-identifier"><ins class="diff-chg">
blank
node
identifier
</ins></a>,<ins class="diff-chg">
a
</ins><a class="tref internalDFN" title="keyword" href="#dfn-keyword"><ins class="diff-chg">
keyword
</ins></a>,<a class="tref internalDFN" title="null" href="#dfn-null"><ins class="diff-chg">
null
</ins></a>,<ins class="diff-chg">
or
an
</ins><a class="tref internalDFN" title="expanded-term-definition" href="#dfn-expanded-term-definition"><ins class="diff-chg">
expanded
term
definition
</ins></a>.</p><p><ins class="diff-chg">
An
</ins><a class="tref internalDFN" title="expanded-term-definition" href="#dfn-expanded-term-definition"><ins class="diff-chg">
expanded
term
definition
</ins>
</a>
<del class="diff-old">containing
</del>
<ins class="diff-chg">is
used
to
describe
the
mapping
between
</ins>
a
<del class="diff-old">combination
</del>
<a class="tref internalDFN" title="term" href="#dfn-term">
<ins class="diff-chg">term
</ins></a><ins class="diff-chg">
and
its
expanded
identifier,
as
well
as
other
properties
</ins>
of
the
<del class="diff-old">allowed
values.
For
each
JSON
object
</del>
<ins class="diff-chg">value
associated
with
the
</ins><a class="tref internalDFN" title="term" href="#dfn-term"><ins class="diff-chg">
term
</ins>
</a>
<del class="diff-old">that
contains
</del>
<ins class="diff-chg">when
it
is
used
as
key
in
</ins>
a
<del class="diff-old">@value
key:
It
may
</del>
<a class="tref internalDFN" title="node-object" href="#dfn-node-object">
<ins class="diff-chg">node
object
</ins></a>.</p><p><ins class="diff-chg">
An
</ins><a class="tref internalDFN" title="expanded-term-definition" href="#dfn-expanded-term-definition"><ins class="diff-chg">
expanded
term
definition
</ins></a><em class="rfc2119" title="MUST"><ins class="diff-chg">
MUST
</ins>
</em>
<del class="diff-old">have
</del>
<ins class="diff-chg">be
</ins>
a
<a class="tref internalDFN" title="json-object" href="#dfn-json-object">
<ins class="diff-new">JSON
object
</ins></a><ins class="diff-new">
composed
of
zero
or
more
keys
from
</ins><code><ins class="diff-new">
@id
</ins></code>,<code><ins class="diff-new">
@reverse
</ins></code>,<code><ins class="diff-new">
@type
</ins></code>,
<code>
@language
</code>
or
<code>
<del class="diff-old">@type
property
and
must
not
</del>
<ins class="diff-chg">@container
</ins></code>.<ins class="diff-chg">
An
</ins><a class="tref internalDFN" title="expanded-term-definition" href="#dfn-expanded-term-definition"><ins class="diff-chg">
expanded
term
definition
</ins></a><em class="rfc2119" title="SHOULD NOT"><ins class="diff-chg">
SHOULD
NOT
</ins>
</em>
<del class="diff-old">have
</del>
<ins class="diff-chg">contain
</ins>
any
other
<del class="diff-old">properties.
It
must
</del>
<ins class="diff-chg">keys.
</ins></p><p><ins class="diff-chg">
If
an
</ins><a class="tref internalDFN" title="expanded-term-definition" href="#dfn-expanded-term-definition"><ins class="diff-chg">
expanded
term
definition
</ins></a><ins class="diff-chg">
has
an
</ins><code><ins class="diff-chg">
@reverse
</ins></code><ins class="diff-chg">
member,
</ins><code><ins class="diff-chg">
@id
</ins></code>,<code><ins class="diff-chg">
@type
</ins></code>,<ins class="diff-chg">
and
</ins><code><ins class="diff-chg">
@language
</ins></code><ins class="diff-chg">
are
</ins>
not
<ins class="diff-new">allowed.
If
an
</ins><code><ins class="diff-new">
@container
</ins></code><ins class="diff-new">
member
exists,
its
value
</ins><em class="rfc2119" title="MUST"><ins class="diff-new">
MUST
</ins>
</em>
<del class="diff-old">contain
both
</del>
<ins class="diff-chg">be
</ins><a class="tref internalDFN" title="null" href="#dfn-null"><ins class="diff-chg">
null
</ins></a><ins class="diff-chg">
or
</ins><code><ins class="diff-chg">
@index
</ins></code>.</p><p><ins class="diff-chg">
If
</ins>
the
<ins class="diff-new">term
being
defined
is
not
a
</ins><a class="tref internalDFN" title="compact-iri" href="#dfn-compact-iri"><ins class="diff-new">
compact
</ins><abbr title="Internationalized Resource Identifier"><ins class="diff-new">
IRI
</ins></abbr></a><ins class="diff-new">
or
</ins><a class="tref internalDFN" title="absolute-iri" href="#dfn-absolute-iri"><ins class="diff-new">
absolute
</ins><abbr title="Internationalized Resource Identifier"><ins class="diff-new">
IRI
</ins></abbr></a><ins class="diff-new">
and
the
</ins><a class="tref internalDFN" title="active-context" href="#dfn-active-context"><ins class="diff-new">
active
context
</ins></a><ins class="diff-new">
does
not
have
an
</ins>
<code>
<del class="diff-old">@language
</del>
<ins class="diff-chg">@vocab
</ins>
</code>
<del class="diff-old">and
</del>
<ins class="diff-chg">mapping,
the
</ins><a class="tref internalDFN" title="expanded-term-definition" href="#dfn-expanded-term-definition"><ins class="diff-chg">
expanded
term
definition
</ins></a><em class="rfc2119" title="MUST"><ins class="diff-chg">
MUST
</ins></em><ins class="diff-chg">
include
the
</ins>
<code>
<del class="diff-old">@type
</del>
<ins class="diff-chg">@id
</ins>
</code>
<del class="diff-old">keys
at
</del>
<ins class="diff-chg">key.
</ins></p><p><ins class="diff-chg">
If
</ins>
the
<del class="diff-old">same
time.
The
value
of
</del>
<a class="tref internalDFN" title="expanded-term-definition" href="#dfn-expanded-term-definition">
<ins class="diff-chg">expanded
term
definition
</ins></a><ins class="diff-chg">
contains
</ins>
the
<code>
<del class="diff-old">@value
</del>
<ins class="diff-chg">@id
</ins>
</code>
<del class="diff-old">key
must
</del>
<a class="tref internalDFN" title="keyword" href="#dfn-keyword">
<ins class="diff-chg">keyword
</ins></a>,<ins class="diff-chg">
its
value
</ins><em class="rfc2119" title="MUST"><ins class="diff-chg">
MUST
</ins>
</em>
be
<a class="tref internalDFN" title="null" href="#dfn-null">
<ins class="diff-new">null
</ins></a>,<ins class="diff-new">
an
</ins><a class="tref internalDFN" title="absolute-iri" href="#dfn-absolute-iri"><ins class="diff-new">
absolute
</ins><abbr title="Internationalized Resource Identifier"><ins class="diff-new">
IRI
</ins></abbr></a>,
a
<del class="diff-old">string
</del>
<a class="tref internalDFN" title="blank-node-identifier" href="#dfn-blank-node-identifier">
<ins class="diff-chg">blank
node
identifier
</ins></a>,<ins class="diff-chg">
a
</ins><a class="tref internalDFN" title="compact-iri" href="#dfn-compact-iri"><ins class="diff-chg">
compact
</ins><abbr title="Internationalized Resource Identifier"><ins class="diff-chg">
IRI
</ins></abbr></a>,
or
a
<del class="diff-old">number.
The
value
of
</del>
<a class="tref internalDFN" title="term" href="#dfn-term">
<ins class="diff-chg">term
</ins></a>.</p><p><ins class="diff-chg">
If
the
</ins><a class="tref internalDFN" title="expanded-term-definition" href="#dfn-expanded-term-definition"><ins class="diff-chg">
expanded
term
definition
</ins></a><ins class="diff-chg">
contains
</ins>
the
<code>
<del class="diff-old">@language
</del>
<ins class="diff-chg">@type
</ins>
</code>
<del class="diff-old">key
must
</del>
<a class="tref internalDFN" title="keyword" href="#dfn-keyword">
<ins class="diff-chg">keyword
</ins></a>,<ins class="diff-chg">
its
value
</ins><em class="rfc2119" title="MUST"><ins class="diff-chg">
MUST
</ins>
</em>
be
<ins class="diff-chg">an
</ins><a class="tref internalDFN" title="absolute-iri" href="#dfn-absolute-iri"><ins class="diff-chg">
absolute
</ins><abbr title="Internationalized Resource Identifier"><ins class="diff-chg">
IRI
</ins></abbr></a>,<ins class="diff-chg">
a
</ins><a class="tref internalDFN" title="compact-iri" href="#dfn-compact-iri"><ins class="diff-chg">
compact
</ins><abbr title="Internationalized Resource Identifier"><ins class="diff-chg">
IRI
</ins></abbr></a>,<ins class="diff-chg">
a
</ins><a class="tref internalDFN" title="blank-node-identifier" href="#dfn-blank-node-identifier"><ins class="diff-chg">
blank
node
identifier
</ins></a>,<ins class="diff-chg">
a
</ins><a class="tref internalDFN" title="term" href="#dfn-term"><ins class="diff-chg">
term
</ins></a><ins class="diff-chg">
or
the
</ins><a class="tref internalDFN" title="active-context" href="#dfn-active-context"><ins class="diff-chg">
active
context
</ins></a>,<a class="tref internalDFN" title="null" href="#dfn-null">
null
</a>,
<ins class="diff-new">or
the
one
of
the
</ins><a class="tref internalDFN" title="keyword" href="#dfn-keyword"><ins class="diff-new">
keywords
</ins></a><code><ins class="diff-new">
@id
</ins>
</code>
or
<del class="diff-old">a
string
</del>
<code>
<ins class="diff-chg">@vocab
</ins></code>.</p><p><ins class="diff-chg">
If
the
</ins><a class="tref internalDFN" title="expanded-term-definition" href="#dfn-expanded-term-definition"><ins class="diff-chg">
expanded
term
definition
</ins></a><ins class="diff-chg">
contains
the
</ins><code><ins class="diff-chg">
@language
</ins></code><a class="tref internalDFN" title="keyword" href="#dfn-keyword"><ins class="diff-chg">
keyword
</ins></a>,<ins class="diff-chg">
its
value
</ins><em class="rfc2119" title="MUST"><ins class="diff-chg">
MUST
</ins></em><ins class="diff-chg">
have
the
lexical
form
described
</ins>
in
[
<cite>
<a class="bibref" href="#bib-BCP47">
BCP47
</a>
</cite>
]
<del class="diff-old">format.
The
value
of
</del>
<ins class="diff-chg">or
be
</ins><a class="tref internalDFN" title="null" href="#dfn-null"><ins class="diff-chg">
null
</ins></a>.</p><p><ins class="diff-chg">
If
the
</ins><a class="tref internalDFN" title="expanded-term-definition" href="#dfn-expanded-term-definition"><ins class="diff-chg">
expanded
term
definition
</ins></a><ins class="diff-chg">
contains
the
</ins>
<code>
<del class="diff-old">@type
</del>
<ins class="diff-chg">@container
</ins>
</code>
<del class="diff-old">must
</del>
<a class="tref internalDFN" title="keyword" href="#dfn-keyword">
<ins class="diff-chg">keyword
</ins></a>,<ins class="diff-chg">
its
value
</ins><em class="rfc2119" title="MUST"><ins class="diff-chg">
MUST
</ins>
</em>
be
<ins class="diff-new">either
</ins><code><ins class="diff-new">
@list
</ins></code>,<code><ins class="diff-new">
@set
</ins></code>,
<code>
<ins class="diff-new">@language
</ins></code>,<code><ins class="diff-new">
@index
</ins></code>,<ins class="diff-new">
or
be
</ins><a class="tref internalDFN" title="null" href="#dfn-null">
null
</a>.
<ins class="diff-new">If
the
value
is
</ins><code><ins class="diff-new">
@language
</ins>
</code>,
<ins class="diff-new">when
the
</ins><a class="tref internalDFN" title="term" href="#dfn-term"><ins class="diff-new">
term
</ins></a><ins class="diff-new">
is
used
outside
of
the
</ins><code><ins class="diff-new">
@context
</ins></code>,<ins class="diff-new">
the
associated
value
</ins><em class="rfc2119" title="MUST"><ins class="diff-new">
MUST
</ins></em><ins class="diff-new">
be
</ins>
a
<a class="tref internalDFN" title="language-map" href="#dfn-language-map">
<ins class="diff-new">language
map
</ins></a>.<ins class="diff-new">
If
the
value
is
</ins><code><ins class="diff-new">
@index
</ins></code>,<ins class="diff-new">
when
the
</ins>
<a class="tref internalDFN" title="term" href="#dfn-term">
term
<del class="diff-old">,
</del>
</a>
<ins class="diff-chg">is
used
outside
of
the
</ins><code><ins class="diff-chg">
@context
</ins></code>,<ins class="diff-chg">
the
associated
value
</ins><em class="rfc2119" title="MUST"><ins class="diff-chg">
MUST
</ins></em><ins class="diff-chg">
be
an
</ins><a class="tref internalDFN" title="index-map" href="#dfn-index-map"><ins class="diff-chg">
index
map
</ins></a>.</p><p><a class="tref internalDFN" title="term" href="#dfn-term"><ins class="diff-chg">
Terms
</ins></a><em class="rfc2119" title="MUST NOT"><ins class="diff-chg">
MUST
NOT
</ins></em><ins class="diff-chg">
be
used
in
</ins>
a
<del class="diff-old">compact
IRI
</del>
<ins class="diff-chg">circular
manner.
That
is,
the
definition
of
a
term
cannot
depend
on
the
definition
of
another
term
if
that
other
term
also
depends
on
the
first
term.
</ins></p><p><ins class="diff-chg">
See
</ins><a class="sectionRef sec-ref" href="#the-context"><ins class="diff-chg">
section
5.1
The
Context
</ins></a><ins class="diff-chg">
for
further
discussion
on
contexts.
</ins></p></div></div><div class="appendix normative section" id="relationship-to-rdf"><h2>
<del class="diff-old">,
an
</del>
<span class="secno">
<ins class="diff-chg">C.
</ins></span><ins class="diff-chg">
Relationship
to
RDF
</ins></h2><p><ins class="diff-chg">
The
RDF
data
model,
as
outlined
in
[
</ins><cite>
<del class="diff-old">IRI
</del>
<a class="bibref" href="#bib-RDF11-CONCEPTS">
<ins class="diff-chg">RDF11-CONCEPTS
</ins></a>
<del class="diff-old">,
a
JSON
object
,
or
</del>
</cite>
<ins class="diff-chg">],
is
</ins>
an
<del class="diff-old">array
containing
</del>
<ins class="diff-chg">abstract
syntax
for
representing
</ins>
a
<del class="diff-old">combination
</del>
<ins class="diff-chg">directed
graph
</ins>
of
<ins class="diff-new">information.
It
is
a
subset
of
</ins><a class="tref internalDFN" title="json-ld-data-model" href="#dfn-json-ld-data-model"><ins class="diff-new">
JSON-LD's
data
model
</ins></a><ins class="diff-new">
with
a
few
additional
constraints.
The
differences
between
</ins>
the
<del class="diff-old">allowed
values.
</del>
<ins class="diff-chg">two
data
models
are:
</ins></p><ul><li><ins class="diff-chg">
In
JSON-LD
</ins><a class="tref internalDFN" title="graph-name" href="#dfn-graph-name"><ins class="diff-chg">
graph
names
</ins></a><ins class="diff-chg">
can
be
</ins><a class="tref internalDFN" title="iri" href="#dfn-iri"><ins class="diff-chg">
IRIs
</ins></a><ins class="diff-chg">
or
</ins><a class="tref internalDFN" title="blank-node" href="#dfn-blank-node"><ins class="diff-chg">
blank
nodes
</ins></a><ins class="diff-chg">
whereas
in
RDF
graph
names
have
to
be
</ins><a class="tref internalDFN" title="iri" href="#dfn-iri"><ins class="diff-chg">
IRIs
</ins></a>.
</li>
<li>
<ins class="diff-chg">In
JSON-LD
</ins><a class="tref internalDFN" title="property" href="#dfn-property"><ins class="diff-chg">
properties
</ins></a><ins class="diff-chg">
can
be
</ins><a class="tref internalDFN" title="iri" href="#dfn-iri"><ins class="diff-chg">
IRIs
</ins></a><ins class="diff-chg">
or
</ins><a class="tref internalDFN" title="blank-node" href="#dfn-blank-node"><ins class="diff-chg">
blank
nodes
</ins></a><ins class="diff-chg">
whereas
in
RDF
properties
(predicates)
have
to
be
</ins><a class="tref internalDFN" title="iri" href="#dfn-iri"><ins class="diff-chg">
IRIs
</ins></a>.
</li>
<li>
In
<ins class="diff-new">JSON-LD
lists
are
part
of
</ins>
the
<del class="diff-old">body
</del>
<ins class="diff-chg">data
model
whereas
in
RDF
they
are
part
</ins>
of
a
<ins class="diff-new">vocabulary,
namely
[
</ins><cite><a class="bibref" href="#bib-RDF-SCHEMA"><ins class="diff-new">
RDF-SCHEMA
</ins></a></cite><ins class="diff-new">
].
</ins></li><li><ins class="diff-new">
RDF
values
are
either
typed
</ins><em><ins class="diff-new">
literals
</ins></em><ins class="diff-new">
(
</ins><a class="tref internalDFN" title="typed-value" href="#dfn-typed-value"><ins class="diff-new">
typed
values
</ins></a><ins class="diff-new">
)
or
</ins><em><ins class="diff-new">
language-tagged
strings
</ins></em><ins class="diff-new">
(
</ins><a class="tref internalDFN" title="language-tagged-string" href="#dfn-language-tagged-string"><ins class="diff-new">
language-tagged
strings
</ins></a><ins class="diff-new">
)
whereas
</ins>
JSON-LD
<del class="diff-old">document,
</del>
<ins class="diff-chg">also
supports
JSON's
native
data
types,
i.e.,
</ins><a class="tref internalDFN" title="number" href="#dfn-number"><ins class="diff-chg">
number
</ins></a>,<a class="tref internalDFN" title="string" href="#dfn-string"><ins class="diff-chg">
strings
</ins></a>,<ins class="diff-chg">
and
</ins>
the
<del class="diff-old">value
</del>
<ins class="diff-chg">boolean
values
</ins><a class="tref internalDFN" title="true" href="#dfn-true"><ins class="diff-chg">
true
</ins></a><ins class="diff-chg">
and
</ins><a class="tref internalDFN" title="false" href="#dfn-false"><ins class="diff-chg">
false
</ins></a>.<ins class="diff-chg">
The
JSON-LD
Processing
Algorithms
and
API
specification
[
</ins><cite><a class="bibref" href="#bib-JSON-LD-API"><ins class="diff-chg">
JSON-LD-API
</ins></a></cite><ins class="diff-chg">
]
defines
the
conversion
rules
between
JSON's
native
data
types
and
RDF's
counterparts
to
allow
full
round-tripping.
</ins></li></ul><p><ins class="diff-chg">
Summarized
these
differences
mean
that
JSON-LD
is
capable
</ins>
of
<del class="diff-old">@type
must
</del>
<ins class="diff-chg">serializing
any
RDF
graph
or
dataset
and
most,
but
</ins>
not
<ins class="diff-chg">all,
JSON-LD
documents
can
</ins>
be
<del class="diff-old">@id
.
This
</del>
<ins class="diff-chg">directly
transformed
to
RDF.
It
</ins>
is
<del class="diff-old">in
contrast
</del>
<ins class="diff-chg">possible
</ins>
to
<del class="diff-old">the
use
</del>
<ins class="diff-chg">work
around
this
restriction,
when
converting
JSON-LD
to
RDF,
by
converting
</ins><a class="tref internalDFN" title="blank-node" href="#dfn-blank-node"><ins class="diff-chg">
blank
nodes
</ins></a><ins class="diff-chg">
used
as
</ins><a class="tref internalDFN" title="graph-name" href="#dfn-graph-name"><ins class="diff-chg">
graph
names
</ins></a><ins class="diff-chg">
or
</ins><a class="tref internalDFN" title="property" href="#dfn-property"><ins class="diff-chg">
properties
</ins></a><ins class="diff-chg">
to
</ins><a class="tref internalDFN" title="iri" href="#dfn-iri"><ins class="diff-chg">
IRIs
</ins></a>,<ins class="diff-chg">
minting
new
&quot;Skolem
IRIs&quot;
as
per
</ins><cite><a href="http://www.w3.org/TR/rdf11-concepts/#section-skolemization"><ins class="diff-chg">
Replacing
Blank
Nodes
with
IRIs
</ins></a></cite>
of
<del class="diff-old">@type
</del>
<ins class="diff-chg">[
</ins><cite><a class="bibref" href="#bib-RDF11-CONCEPTS"><ins class="diff-chg">
RDF11-CONCEPTS
</ins></a></cite><ins class="diff-chg">
].
A
complete
description
of
the
algorithms
to
convert
from
RDF
to
JSON-LD
and
from
JSON-LD
to
RDF
is
included
</ins>
in
the
<del class="diff-old">@context
,
where
this
</del>
<ins class="diff-chg">JSON-LD
Processing
Algorithms
and
API
specification
[
</ins><cite><a class="bibref" href="#bib-JSON-LD-API"><ins class="diff-chg">
JSON-LD-API
</ins></a></cite><ins class="diff-chg">
].
</ins></p><p><ins class="diff-chg">
Even
though
JSON-LD
serializes
RDF
datasets,
it
can
also
be
used
as
a
RDF
graph
source.
In
that
case,
a
consumer
</ins><em class="rfc2119" title="MUST"><ins class="diff-chg">
MUST
</ins></em><ins class="diff-chg">
only
use
the
default
graph
and
ignore
all
named
graphs.
This
allows
servers
to
expose
data
in,
e.g.,
both
Turtle
and
JSON-LD
using
content
negotiation.
</ins></p><div class="note"><div class="note-title"><span><ins class="diff-chg">
Note
</ins></span></div><p class=""><ins class="diff-chg">
Publishers
supporting
both
dataset
and
graph
syntaxes
have
to
ensure
that
the
primary
data
</ins>
is
<del class="diff-old">allowed.
</del>
<ins class="diff-chg">stored
in
the
default
graph
to
enable
consumers
that
do
not
support
datasets
to
process
the
information.
</ins></p>
</div>
<div class="informative section" id="transformation-from-json-ld-to-rdf">
<h3>
<span class="secno">
<del class="diff-old">B.
</del>
<ins class="diff-chg">C.1
</ins>
</span>
<del class="diff-old">Relationship
</del>
<ins class="diff-chg">Transformation
from
JSON-LD
</ins>
to
<del class="diff-old">other
</del>
RDF
<del class="diff-old">Formats
</del>
</h3>
<p>
<em>
This
section
is
non-normative.
</em>
</p>
<del class="diff-old">Issue
6
</del>
<p>
The
<del class="diff-old">intent
of
the
Working
Group
and
the
Editors
</del>
<ins class="diff-chg">process
</ins>
of
<del class="diff-old">this
specification
is
to
eventually
align
terminology
used
in
this
</del>
<ins class="diff-chg">turning
a
JSON-LD
</ins>
document
<del class="diff-old">with
</del>
<ins class="diff-chg">depends
on
executing
</ins>
the
<del class="diff-old">terminology
used
</del>
<ins class="diff-chg">algorithms
defined
</ins>
in
<del class="diff-old">the
</del>
<cite>
<a href="../json-ld-api/#rdf-conversion-algorithms">
RDF
<del class="diff-old">Concepts
document
</del>
<ins class="diff-chg">Conversion
Algorithms
</ins></a></cite><ins class="diff-chg">
in
the
JSON-LD
Processing
Algorithms
and
API
specification
</ins>
[
<cite>
<del class="diff-old">RDF-CONCEPTS
</del>
<a class="bibref" href="#bib-JSON-LD-API">
<ins class="diff-chg">JSON-LD-API
</ins>
</a>
</cite>
<del class="diff-old">]
to
</del>
<ins class="diff-chg">].
It
is
beyond
</ins>
the
<del class="diff-old">extent
to
which
it
makes
sense
</del>
<ins class="diff-chg">scope
of
this
document
</ins>
to
<del class="diff-old">do
so.
In
general,
if
there
</del>
<ins class="diff-chg">detail
these
algorithms
any
further,
but
a
summary
of
the
necessary
operations
</ins>
is
<del class="diff-old">an
analogue
</del>
<ins class="diff-chg">provided
</ins>
to
<del class="diff-old">terminology
used
in
</del>
<ins class="diff-chg">illustrate
the
process.
</ins></p><p><ins class="diff-chg">
The
procedure
involves
the
following
steps:
</ins></p><ol><li><ins class="diff-chg">
Expand
the
JSON-LD
document,
removing
any
context;
</ins>
this
<del class="diff-old">document
</del>
<ins class="diff-chg">ensures
that
properties,
types,
and
values
are
given
their
full
representation
as
</ins><a class="tref internalDFN" title="iri" href="#dfn-iri"><ins class="diff-chg">
IRIs
</ins></a><ins class="diff-chg">
and
expanded
values.
Expansion
is
discussed
further
</ins>
in
<a class="sectionRef sec-ref" href="#expanded-document-form">
<ins class="diff-new">section
6.17
Expanded
Document
Form
</ins></a>.</li><li><ins class="diff-new">
Flatten
</ins>
the
<del class="diff-old">RDF
Concepts
</del>
document,
<ins class="diff-new">which
turns
</ins>
the
<del class="diff-old">preference
</del>
<ins class="diff-chg">document
into
an
array
of
</ins><a class="tref internalDFN" title="node-object" href="#dfn-node-object"><ins class="diff-chg">
node
objects
</ins></a>.<ins class="diff-chg">
Flattening
</ins>
is
<del class="diff-old">to
use
the
terminology
</del>
<ins class="diff-chg">discussed
further
</ins>
in
<del class="diff-old">the
</del>
<a class="sectionRef sec-ref" href="#flattened-document-form">
<ins class="diff-chg">section
6.19
Flattened
Document
Form
</ins></a>.</li><li><ins class="diff-chg">
Turn
each
</ins><a class="tref internalDFN" title="node-object" href="#dfn-node-object"><ins class="diff-chg">
node
object
</ins></a><ins class="diff-chg">
into
a
series
of
</ins><a class="tref externalDFN" title="rdf-triples" href="http://www.w3.org/TR/rdf11-concepts/#dfn-rdf-triple">
RDF
<del class="diff-old">Concepts
document.
</del>
<ins class="diff-chg">triples
</ins></a>.</li></ol><p><ins class="diff-chg">
For
example,
consider
the
following
JSON-LD
document
in
compact
form:
</ins>
</p>
    <div class="example"><div class="example-title"><span>Example 63</span>: Sample JSON-LD document</div><pre class="example">{
<ins class="diff-new">  &quot;@context&quot;: {
    &quot;name&quot;: &quot;http://xmlns.com/foaf/0.1/name&quot;,
    &quot;knows&quot;: &quot;http://xmlns.com/foaf/0.1/knows&quot;
  },
  &quot;@id&quot;: &quot;http://me.markus-lanthaler.com/&quot;,
  &quot;name&quot;: &quot;Markus Lanthaler&quot;,
  &quot;knows&quot;: [
    {
      &quot;@id&quot;: &quot;http://manu.sporny.org/&quot;,
      &quot;name&quot;: &quot;Manu Sporny&quot;
    },
    {
      &quot;name&quot;: &quot;Dave Longley&quot;
    }
  ]
}
</ins></pre>
</div>
<p>
<ins class="diff-new">Running
the
JSON-LD
Expansion
and
Flattening
algorithms
against
the
</ins>
JSON-LD
<ins class="diff-new">input
document
in
the
example
above
would
result
in
the
following
output:
</ins></p>    <div class="example"><div class="example-title"><span>Example 64</span>: Flattened and expanded form for the previous example</div><pre class="example">[<ins class="diff-new">
  {
    &quot;@id&quot;: &quot;_:b0&quot;,
    &quot;http://xmlns.com/foaf/0.1/name&quot;: &quot;Dave Longley&quot;
  },
  {
    &quot;@id&quot;: &quot;http://manu.sporny.org/&quot;,
    &quot;http://xmlns.com/foaf/0.1/name&quot;: &quot;Manu Sporny&quot;
  },
  {
    &quot;@id&quot;: &quot;http://me.markus-lanthaler.com/&quot;,
    &quot;http://xmlns.com/foaf/0.1/name&quot;: &quot;Markus Lanthaler&quot;,
    &quot;http://xmlns.com/foaf/0.1/knows&quot;: [
      { &quot;@id&quot;: &quot;http://manu.sporny.org/&quot; },
      { &quot;@id&quot;: &quot;_:b0&quot; }
    ]
  }
]
</ins></pre></div><p><ins class="diff-new">
Transforming
this
to
RDF
now
</ins>
is
a
<del class="diff-old">specification
for
representing
Linked
Data
in
JSON.
A
common
way
</del>
<ins class="diff-chg">straightforward
process
</ins>
of
<del class="diff-old">working
with
Linked
Data
is
through
RDF
,
the
Resource
Description
Framework.
</del>
<ins class="diff-chg">turning
each
</ins><a class="tref internalDFN" title="node-object" href="#dfn-node-object"><ins class="diff-chg">
node
object
</ins></a><ins class="diff-chg">
into
one
or
more
</ins>
RDF
<ins class="diff-new">triples.
This
</ins>
can
be
expressed
<del class="diff-old">using
JSON-LD
by
associating
JSON-LD
concepts
such
</del>
<ins class="diff-chg">in
Turtle
</ins>
as
<del class="diff-old">@id
and
@type
with
the
equivalent
</del>
<ins class="diff-chg">follows:
</ins></p>    <div class="example"><div class="example-title"><span>Example 65</span>: Turtle representation of expanded/flattend document</div><pre class="example">_:b0 &lt;http://xmlns.com/foaf/0.1/name&gt; &quot;Dave Longley&quot; .
<del class="diff-old">IRI
</del>
<ins class="diff-chg">&lt;http://manu.sporny.org/&gt; &lt;http://xmlns.com/foaf/0.1/name&gt; &quot;Manu Sporny&quot; .
</ins>
<del class="diff-old">s
in
RDF.
Further
information
about
</del>
<ins class="diff-chg">&lt;http://me.markus-lanthaler.com/&gt; &lt;http://xmlns.com/foaf/0.1/name&gt; &quot;Markus Lanthaler&quot; ;
&lt;http://xmlns.com/foaf/0.1/knows&gt;
&lt;http://manu.sporny.org/&gt;,
_:b0
.
</ins></pre></div><p><ins class="diff-chg">
The
process
of
turning
</ins>
RDF
<del class="diff-old">may
</del>
<ins class="diff-chg">into
JSON-LD
can
</ins>
be
<del class="diff-old">found
in
</del>
<ins class="diff-chg">thought
of
as
</ins>
the
<del class="diff-old">[
RDF-PRIMER
</del>
<ins class="diff-chg">inverse
of
this
last
step,
creating
an
expanded
JSON-LD
document
closely
matching
the
triples
from
RDF,
using
a
single
</ins><a class="tref internalDFN" title="node-object" href="#dfn-node-object"><ins class="diff-chg">
node
object
</ins></a><ins class="diff-chg">
for
all
triples
having
a
common
subject,
and
a
single
</ins><a class="tref internalDFN" title="property" href="#dfn-property"><ins class="diff-chg">
property
</ins>
</a>
<ins class="diff-new">for
those
triples
also
having
a
common
predicate.
</ins></p></div></div><div class="appendix informative section" id="relationship-to-other-linked-data-formats"><h2><span class="secno"><ins class="diff-new">
D.
</ins></span><ins class="diff-new">
Relationship
to
Other
Linked
Data
Formats
</ins></h2><p><em><ins class="diff-new">
This
section
is
non-normative.
</ins></em>
<del class="diff-old">].
</del>
</p>
<p>
The
JSON-LD
<del class="diff-old">markup
</del>
examples
below
demonstrate
how
JSON-LD
can
be
used
to
express
semantic
data
marked
up
in
other
<del class="diff-old">languages
and
</del>
<ins class="diff-chg">linked
</ins>
data
<del class="diff-old">models
</del>
<ins class="diff-chg">formats
</ins>
such
as
<del class="diff-old">RDF,
</del>
Turtle,
RDFa,
Microformats,
and
Microdata.
These
sections
are
merely
provided
as
evidence
that
JSON-LD
is
very
flexible
in
what
it
can
express
across
different
<a class="tref internalDFN" title="linked-data" href="#dfn-linked-data">
Linked
Data
</a>
approaches.
<del class="diff-old">Further
information
on
transforming
JSON-LD
into
RDF
are
detailed
in
the
[
JSON-LD-API
].
</del>
</p>
<div class="informative section" id="turtle">
<h3>
<span class="secno">
<del class="diff-old">B.1
</del>
<ins class="diff-chg">D.1
</ins>
</span>
<del class="diff-old">RDF
</del>
<ins class="diff-chg">Turtle
</ins>
</h3>
<p>
<em>
This
section
is
non-normative.
</em>
</p>
<p>
The
<del class="diff-old">RDF
data
model,
as
outlined
in
[
RDF-CONCEPTS
],
is
an
abstract
syntax
for
representing
a
directed
graph
of
information.
JSON-LD
is
capable
of
serializing
any
RDF
graph,
and
performing
full
RDF
to
JSON-LD
to
RDF
round-tripping.
A
complete
description
of
how
JSON-LD
maps
to
RDF
and
algorithms
detailing
how
one
can
convert
from
RDF
to
JSON-LD
and
from
JSON-LD
to
RDF
are
included
in
the
JSON-LD
API
[
JSON-LD-API
]
specification.
B.2
Turtle
The
</del>
following
are
examples
of
converting
RDF
expressed
in
<ins class="diff-new">Turtle
</ins>
[
<cite>
<del class="diff-old">TURTLE-TR
</del>
<a class="bibref" href="#bib-TURTLE">
<ins class="diff-chg">TURTLE
</ins>
</a>
</cite>
]
into
JSON-LD.
</p>
<del class="diff-old">B.2.1
</del>
<div class="section">
<h4 id="prefix-definitions">
Prefix
definitions
</h4>
<p>
<em>
This
section
is
non-normative.
</em>
</p>
<p>
The
JSON-LD
context
has
direct
equivalents
for
the
Turtle
<code>
@prefix
</code>
declaration:
</p>
<del class="diff-old">@prefix foaf: &lt;http://xmlns.com/foaf/0.1/&gt; .
</del>
      <div class="example"><div class="example-title"><span>Example 66</span>: A set of statements serialized in Turtle</div><pre class="example">@prefix foaf: &lt;http://xmlns.com/foaf/0.1/&gt; .
&lt;http://manu.sporny.org/i/public&gt; a foaf:Person;
  foaf:name &quot;Manu Sporny&quot;;
foaf:homepage
&lt;http://manu.sporny.org/&gt;
.
</pre>
</div>
<del class="diff-old">{
</del>
      <div class="example"><div class="example-title"><span>Example 67</span>: The same set of statements serialized in JSON-LD</div><pre class="example">{
  &quot;@context&quot;:
  {
    &quot;foaf&quot;: &quot;http://xmlns.com/foaf/0.1/&quot;
  },
  &quot;@id&quot;: &quot;http://manu.sporny.org/i/public&quot;,
  &quot;@type&quot;: &quot;foaf:Person&quot;,
  &quot;foaf:name&quot;: &quot;Manu Sporny&quot;,
  &quot;foaf:homepage&quot;: { &quot;@id&quot;: &quot;http://manu.sporny.org/&quot; }
}
</pre>
</div>
<del class="diff-old">Note
</del>
</div>
<del class="diff-old">JSON-LD
has
no
equivalent
for
the
Turtle
@base
declaration.
Instead,
authors
may
use
a
prefix
definition
to
resolve
relative
IRI
s:
{
  &quot;@context&quot;:
  {

    &quot;foaf&quot;: &quot;http://xmlns.com/foaf/0.1/&quot;
  },
  &quot;@id&quot;: ,
  &quot;@type&quot;: &quot;foaf:Person&quot;,
  &quot;foaf:name&quot;: &quot;Manu Sporny&quot;,
  &quot;foaf:homepage&quot;: { &quot;@id&quot;: }
}
B.2.2
</del>
<div class="section">
<h4 id="embedding-1">
Embedding
</h4>
<p>
Both
Turtle
and
JSON-LD
allow
<del class="diff-old">embedding
of
objects,
</del>
<ins class="diff-chg">embedding,
</ins>
although
Turtle
only
allows
embedding
of
<del class="diff-old">objects
which
use
unlabeled
node
identifiers.
</del>
<a class="tref internalDFN" title="blank-node" href="#dfn-blank-node">
<ins class="diff-chg">blank
nodes
</ins></a>.
</p>
<del class="diff-old">@prefix foaf: &lt;http://xmlns.com/foaf/0.1/&gt; .
</del>
      <div class="example"><div class="example-title"><span>Example 68</span>: Embedding in Turtle</div><pre class="example">@prefix foaf: &lt;http://xmlns.com/foaf/0.1/&gt; .
&lt;http://manu.sporny.org/i/public&gt;
  a foaf:Person;
  foaf:name &quot;Manu Sporny&quot;;
foaf:knows
[
a
foaf:Person;
foaf:name
&quot;Gregg
Kellogg&quot;
]
.
</pre>
</div>
<del class="diff-old">{
</del>
      <div class="example"><div class="example-title"><span>Example 69</span>: Same embedding example in JSON-LD</div><pre class="example">{
  &quot;@context&quot;:
  {
    &quot;foaf&quot;: &quot;http://xmlns.com/foaf/0.1/&quot;
  },
  &quot;@id&quot;: &quot;http://manu.sporny.org/i/public&quot;,
  &quot;@type&quot;: &quot;foaf:Person&quot;,
  &quot;foaf:name&quot;: &quot;Manu Sporny&quot;,
  &quot;foaf:knows&quot;:
  {
    &quot;@type&quot;: &quot;foaf:Person&quot;,
    &quot;foaf:name&quot;: &quot;Gregg Kellogg&quot;
  }
}
</pre>
</div>
</div>
<div class="section">
<h4 id="conversion-of-native-data-types">
<ins class="diff-chg">Conversion
of
native
data
types
</ins></h4><p><ins class="diff-chg">
In
JSON-LD
numbers
and
boolean
values
are
native
data
types.
While
Turtle
has
a
shorthand
syntax
to
express
such
values,
RDF's
abstract
syntax
requires
that
numbers
and
boolean
values
are
represented
as
typed
literals.
Thus,
to
allow
full
round-tripping,
the
JSON-LD
Processing
Algorithms
and
API
specification
[
</ins><cite>
<del class="diff-old">B.2.3
</del>
<a class="bibref" href="#bib-JSON-LD-API">
<ins class="diff-chg">JSON-LD-API
</ins></a></cite><ins class="diff-chg">
]
defines
conversion
rules
between
JSON-LD's
native
data
types
and
RDF's
counterparts.
</ins><a class="tref internalDFN" title="number" href="#dfn-number"><ins class="diff-chg">
Numbers
</ins></a><ins class="diff-chg">
without
fractions
are
converted
to
</ins><code><ins class="diff-chg">
xsd:integer
</ins></code><ins class="diff-chg">
-typed
literals,
numbers
with
fractions
to
</ins><code><ins class="diff-chg">
xsd:double
</ins></code><ins class="diff-chg">
-typed
literals
and
the
two
boolean
values
</ins><a class="tref internalDFN" title="true" href="#dfn-true"><ins class="diff-chg">
true
</ins></a><ins class="diff-chg">
and
</ins><a class="tref internalDFN" title="false" href="#dfn-false"><ins class="diff-chg">
false
</ins></a><ins class="diff-chg">
to
a
</ins><code><ins class="diff-chg">
xsd:boolean
</ins></code><ins class="diff-chg">
-typed
literal.
All
typed
literals
are
in
canonical
lexical
form.
</ins></p>      <div class="example"><div class="example-title"><span>Example 70</span>: JSON-LD using native data types for numbers and boolean values</div><pre class="example">{<ins class="diff-chg">
  &quot;@context&quot;:
  {
    &quot;ex&quot;: &quot;http://example.com/vocab#&quot;
  },
  &quot;@id&quot;: &quot;http://example.com/&quot;,
  &quot;ex:numbers&quot;: [ 14, 2.78 ],
  &quot;ex:booleans&quot;: [ true, false ]
}
</ins></pre></div>      <div class="example"><div class="example-title"><span>Example 71</span>: Same example in Turtle using typed literals</div><pre class="example">@prefix ex: &lt;http://example.com/vocab#&gt; .<ins class="diff-chg">
@prefix xsd: &lt;http://www.w3.org/2001/XMLSchema#&gt; .
&lt;http://example.com/&gt;
  ex:numbers &quot;14&quot;^^xsd:integer, &quot;2.78E0&quot;^^xsd:double ;
ex:booleans
&quot;true&quot;^^xsd:boolean,
&quot;false&quot;^^xsd:boolean
.
</ins></pre></div></div><div class="section"><h4 id="lists">
Lists
</h4>
<p>
Both
JSON-LD
and
Turtle
can
represent
sequential
lists
of
values.
</p>
<del class="diff-old">@prefix foaf: &lt;http://xmlns.com/foaf/0.1/&gt; .
</del>
      <div class="example"><div class="example-title"><span>Example 72</span>: A list of values in Turtle</div><pre class="example">@prefix foaf: &lt;http://xmlns.com/foaf/0.1/&gt; .
&lt;http://example.org/people#joebob&gt; a foaf:Person;
  foaf:name &quot;Joe Bob&quot;;
foaf:nick
(
&quot;joe&quot;
&quot;bob&quot;
&quot;jaybee&quot;
)
.
</pre>
</div>
<del class="diff-old">{
</del>
      <div class="example"><div class="example-title"><span>Example 73</span>: Same example with a list of values in JSON-LD</div><pre class="example">{
  &quot;@context&quot;:
  {
    &quot;foaf&quot;: &quot;http://xmlns.com/foaf/0.1/&quot;
  },
  &quot;@id&quot;: &quot;http://example.org/people#joebob&quot;,
  &quot;@type&quot;: &quot;foaf:Person&quot;,
  &quot;foaf:name&quot;: &quot;Joe Bob&quot;,
  &quot;foaf:nick&quot;:
  {
    &quot;@list&quot;: [ &quot;joe&quot;, &quot;bob&quot;, &quot;jaybee&quot; ]
  }
}
</pre>
</div>
</div>
</div>
<div class="informative section" id="rdfa">
<h3>
<span class="secno">
<del class="diff-old">B.3
</del>
<ins class="diff-chg">D.2
</ins>
</span>
RDFa
</h3>
<p>
<em>
<ins class="diff-new">This
section
is
non-normative.
</ins></em></p>
<p>
The
following
example
describes
three
people
with
their
respective
names
and
<del class="diff-old">homepages.
</del>
<ins class="diff-chg">homepages
in
RDFa
[
</ins><cite><a class="bibref" href="#bib-RDFA-CORE"><ins class="diff-chg">
RDFA-CORE
</ins></a></cite><ins class="diff-chg">
].
</ins>
</p>
<del class="diff-old">&gt;
</del>
    <div class="example"><div class="example-title"><span>Example 74</span>: RDFa fragment that describes three people</div><pre class="example">&lt;div <span class="diff">prefix=&quot;foaf: http://xmlns.com/foaf/0.1/&quot;</span>&gt;
   &lt;ul&gt;
      &lt;li <span class="diff">typeof=&quot;foaf:Person&quot;</span>&gt;
<del class="diff-old">        &lt;a &gt;Bob&lt;/a&gt;
</del>
<ins class="diff-chg">        &lt;a <span class="diff">rel=&quot;foaf:homepage&quot; href=&quot;http://example.com/bob/&quot; property=&quot;foaf:name&quot;</span>&gt;Bob&lt;/a&gt;
</ins>
      &lt;/li&gt;
      &lt;li <span class="diff">typeof=&quot;foaf:Person&quot;</span>&gt;
<del class="diff-old">        &lt;a &gt;Eve&lt;/a&gt;
</del>
<ins class="diff-chg">        &lt;a <span class="diff">rel=&quot;foaf:homepage&quot; href=&quot;http://example.com/eve/&quot; property=&quot;foaf:name&quot;</span>&gt;Eve&lt;/a&gt;
</ins>
      &lt;/li&gt;
      &lt;li <span class="diff">typeof=&quot;foaf:Person&quot;</span>&gt;
<del class="diff-old">        &lt;a &gt;Manu&lt;/a&gt;
</del>
<ins class="diff-chg">        &lt;a <span class="diff">rel=&quot;foaf:homepage&quot; href=&quot;http://example.com/manu/&quot; property=&quot;foaf:name&quot;</span>&gt;Manu&lt;/a&gt;
</ins>
      &lt;/li&gt;
   &lt;/ul&gt;
&lt;/div&gt;
</pre>
</div>
<p>
An
example
JSON-LD
implementation
using
a
single
<a class="tref internalDFN" title="context" href="#dfn-context">
context
</a>
is
described
below.
</p>
<del class="diff-old">{
</del>
    <div class="example"><div class="example-title"><span>Example 75</span>: Same description in JSON-LD (context shared among node objects)</div><pre class="example">{
  &quot;@context&quot;:
  {
    &quot;foaf&quot;: &quot;http://xmlns.com/foaf/0.1/&quot;
  },
  &quot;@graph&quot;:
  [
    {
      &quot;@type&quot;: &quot;foaf:Person&quot;,
      &quot;foaf:homepage&quot;: &quot;http://example.com/bob/&quot;,
      &quot;foaf:name&quot;: &quot;Bob&quot;
    },
    {
      &quot;@type&quot;: &quot;foaf:Person&quot;,
      &quot;foaf:homepage&quot;: &quot;http://example.com/eve/&quot;,
      &quot;foaf:name&quot;: &quot;Eve&quot;
    },
    {
      &quot;@type&quot;: &quot;foaf:Person&quot;,
      &quot;foaf:homepage&quot;: &quot;http://example.com/manu/&quot;,
      &quot;foaf:name&quot;: &quot;Manu&quot;
    }
  ]
}
</pre>
</div>
</div>
<div class="informative section" id="microformats">
<h3>
<span class="secno">
<del class="diff-old">B.4
</del>
<ins class="diff-chg">D.3
</ins>
</span>
Microformats
</h3>
<p>
<em>
<ins class="diff-new">This
section
is
non-normative.
</ins></em></p>
<p>
The
following
example
uses
a
simple
Microformats
hCard
example
to
express
how
<del class="diff-old">the
Microformat
is
</del>
<ins class="diff-chg">Microformats
[
</ins><cite><a class="bibref" href="#bib-MICROFORMATS"><ins class="diff-chg">
MICROFORMATS
</ins></a></cite><ins class="diff-chg">
]
are
</ins>
represented
in
JSON-LD.
</p>
<del class="diff-old">&lt;div class=&quot;vcard&quot;&gt;
</del>
    <div class="example"><div class="example-title"><span>Example 76</span>: HTML fragment with a simple Microformats hCard</div><pre class="example">&lt;div class=&quot;vcard&quot;&gt;
 &lt;a class=&quot;url fn&quot; href=&quot;http://tantek.com/&quot;&gt;Tantek Çelik&lt;/a&gt;
&lt;/div&gt;
</pre>
</div>
<p>
The
representation
of
the
hCard
expresses
the
Microformat
terms
in
the
<a class="tref internalDFN" title="context" href="#dfn-context">
context
</a>
and
uses
them
directly
for
the
<code>
url
</code>
and
<code>
fn
</code>
properties.
Also
note
that
the
Microformat
to
JSON-LD
processor
has
generated
the
proper
URL
type
for
<code>
http://tantek.com/
</code>.
</p>
<del class="diff-old">{
</del>
    <div class="example"><div class="example-title"><span>Example 77</span>: Same hCard representation in JSON-LD</div><pre class="example">{
  &quot;@context&quot;:
  {
    &quot;vcard&quot;: &quot;http://microformats.org/profile/hcard#vcard&quot;,
    &quot;url&quot;:
    {
      &quot;@id&quot;: &quot;http://microformats.org/profile/hcard#url&quot;,
      &quot;@type&quot;: &quot;@id&quot;
    },
    &quot;fn&quot;: &quot;http://microformats.org/profile/hcard#fn&quot;
  },
  &quot;@type&quot;: &quot;vcard&quot;,
  &quot;url&quot;: &quot;http://tantek.com/&quot;,
  &quot;fn&quot;: &quot;Tantek Çelik&quot;
}
</pre>
</div>
</div>
<div class="informative section" id="microdata">
<h3>
<span class="secno">
<del class="diff-old">B.5
</del>
<ins class="diff-chg">D.4
</ins>
</span>
Microdata
</h3>
<p>
<em>
<ins class="diff-new">This
section
is
non-normative.
</ins></em></p>
<p>
The
<del class="diff-old">microdata
</del>
<ins class="diff-chg">HTML
Microdata
[
</ins><cite><a class="bibref" href="#bib-MICRODATA"><ins class="diff-chg">
MICRODATA
</ins></a></cite><ins class="diff-chg">
]
</ins>
example
below
expresses
book
information
as
a
<del class="diff-old">microdata
</del>
<ins class="diff-chg">Microdata
</ins>
Work
item.
</p>
<del class="diff-old">&lt;dl itemscope
</del>
    <div class="example"><div class="example-title"><span>Example 78</span>: HTML fragments that describes a book using microdata</div><pre class="example">&lt;dl itemscope
    itemtype=&quot;http://purl.org/vocab/frbr/core#Work&quot;
    itemid=&quot;http://purl.oreilly.com/works/45U8QJGZSQKDH8N&quot;&gt;
 &lt;dt&gt;Title&lt;/dt&gt;
 &lt;dd&gt;&lt;cite itemprop=&quot;http://purl.org/dc/terms/title&quot;&gt;Just a Geek&lt;/cite&gt;&lt;/dd&gt;
 &lt;dt&gt;By&lt;/dt&gt;
 &lt;dd&gt;&lt;span itemprop=&quot;http://purl.org/dc/terms/creator&quot;&gt;Wil Wheaton&lt;/span&gt;&lt;/dd&gt;
 &lt;dt&gt;Format&lt;/dt&gt;
 &lt;dd itemprop=&quot;http://purl.org/vocab/frbr/core#realization&quot;
     itemscope
     itemtype=&quot;http://purl.org/vocab/frbr/core#Expression&quot;
     itemid=&quot;http://purl.oreilly.com/products/9780596007683.BOOK&quot;&gt;
  &lt;link itemprop=&quot;http://purl.org/dc/terms/type&quot; href=&quot;http://purl.oreilly.com/product-types/BOOK&quot;&gt;
  Print
 &lt;/dd&gt;
 &lt;dd itemprop=&quot;http://purl.org/vocab/frbr/core#realization&quot;
     itemscope
     itemtype=&quot;http://purl.org/vocab/frbr/core#Expression&quot;
     itemid=&quot;http://purl.oreilly.com/products/9780596802189.EBOOK&quot;&gt;
  &lt;link itemprop=&quot;http://purl.org/dc/terms/type&quot; href=&quot;http://purl.oreilly.com/product-types/EBOOK&quot;&gt;
  Ebook
 &lt;/dd&gt;
&lt;/dl&gt;
</pre>
</div>
<p>
Note
that
the
JSON-LD
representation
of
the
Microdata
information
stays
true
to
the
desires
of
the
Microdata
community
to
avoid
contexts
and
instead
refer
to
items
by
their
full
<a class="tref internalDFN" title="iri" href="#dfn-iri">
<abbr title="Internationalized Resource Identifier">
IRI
</abbr>
</a>.
</p>
<del class="diff-old">[
</del>
    <div class="example"><div class="example-title"><span>Example 79</span>: Same book description in JSON-LD (avoiding contexts)</div><pre class="example">[
  {
    &quot;@id&quot;: &quot;http://purl.oreilly.com/works/45U8QJGZSQKDH8N&quot;,
    &quot;@type&quot;: &quot;http://purl.org/vocab/frbr/core#Work&quot;,
    &quot;http://purl.org/dc/terms/title&quot;: &quot;Just a Geek&quot;,
    &quot;http://purl.org/dc/terms/creator&quot;: &quot;Whil Wheaton&quot;,
    &quot;http://purl.org/vocab/frbr/core#realization&quot;:
    [
      &quot;http://purl.oreilly.com/products/9780596007683.BOOK&quot;,
      &quot;http://purl.oreilly.com/products/9780596802189.EBOOK&quot;
    ]
  },
  {
    &quot;@id&quot;: &quot;http://purl.oreilly.com/products/9780596007683.BOOK&quot;,
    &quot;@type&quot;: &quot;http://purl.org/vocab/frbr/core#Expression&quot;,
    &quot;http://purl.org/dc/terms/type&quot;: &quot;http://purl.oreilly.com/product-types/BOOK&quot;
  },
  {
    &quot;@id&quot;: &quot;http://purl.oreilly.com/products/9780596802189.EBOOK&quot;,
    &quot;@type&quot;: &quot;http://purl.org/vocab/frbr/core#Expression&quot;,
    &quot;http://purl.org/dc/terms/type&quot;: &quot;http://purl.oreilly.com/product-types/EBOOK&quot;
  }
]
</pre>
</div>
</div>
</div>
<div class="appendix normative section" id="iana-considerations">
<h2>
<span class="secno">
<del class="diff-old">C.
</del>
<ins class="diff-chg">E.
</ins>
</span>
IANA
Considerations
</h2>
<del class="diff-old">This
section
is
non-normative.
</del>
<p>
This
section
is
included
<del class="diff-old">merely
</del>
for
<del class="diff-old">standards
</del>
community
review
and
will
be
submitted
to
the
Internet
Engineering
Steering
Group
<del class="diff-old">if
</del>
<ins class="diff-chg">(IESG)
as
part
of
the
Last
Call
announcement
for
</ins>
this
<del class="diff-old">specification
becomes
a
W3C
Recommendation.
</del>
<ins class="diff-chg">specification.
</ins>
</p>
<h2 id="application-ld-json">
application/ld+json
</h2>
<dl>
<dt>
Type
name:
</dt>
<dd>
application
</dd>
<dt>
Subtype
name:
</dt>
<dd>
ld+json
</dd>
<dt>
Required
parameters:
</dt>
<dd>
None
</dd>
<dt>
Optional
parameters:
</dt>
<dd>
<dl>
<dt>
<code>
<del class="diff-old">form
</del>
<ins class="diff-chg">profile
</ins>
</code>
</dt>
<dd>
<del class="diff-old">Determines
</del>
<p>
<ins class="diff-chg">A
a
non-empty
list
of
space-separated
URIs
identifying
specific
constraints
or
conventions
that
apply
to
a
JSON-LD
document
according
[
</ins><cite><a class="bibref" href="#bib-RFC6906"><ins class="diff-chg">
RFC6906
</ins></a></cite><ins class="diff-chg">
].
A
profile
does
not
change
</ins>
the
<del class="diff-old">serialization
form
for
</del>
<ins class="diff-chg">semantics
of
</ins>
the
<del class="diff-old">JSON-LD
document.
</del>
<ins class="diff-chg">resource
representation
when
processed
without
profile
knowledge,
so
that
clients
both
with
and
without
knowledge
of
a
profiled
resource
can
safely
use
the
same
representation.
</ins>
The
<del class="diff-old">only
valid
value
at
</del>
<code>
<ins class="diff-chg">profile
</ins></code><ins class="diff-chg">
parameter
may
be
used
by
clients
to
express
their
preferences
in
</ins>
the
<del class="diff-old">moment
</del>
<ins class="diff-chg">content
negotiation
process.
It
</ins>
is
<em class="rfc2119" title="RECOMMENDED">
<ins class="diff-new">RECOMMENDED
</ins></em><ins class="diff-new">
that
profile
URIs
are
dereferenceable
and
provide
useful
documentation
at
that
URI.
For
more
information
and
background
please
refer
to
[
</ins><cite><a class="bibref" href="#bib-RFC6906"><ins class="diff-new">
RFC6906
</ins></a></cite><ins class="diff-new">
].
</ins></p><p><ins class="diff-new">
This
specification
defines
three
values
for
the
</ins>
<code>
<del class="diff-old">expanded
.
If
no
form
is
specified
in
an
HTTP
</del>
<ins class="diff-chg">profile
</ins></code><ins class="diff-chg">
parameter.
To
</ins>
request
<del class="diff-old">header
to
an
HTTP
server,
</del>
<ins class="diff-chg">or
specify
Expanded
JSON-LD
document
form,
</ins>
the
<del class="diff-old">server
may
</del>
<ins class="diff-chg">URI
</ins><code><ins class="diff-chg">
http://www.w3.org/ns/json-ld#expanded
</ins></code><em class="rfc2119" title="SHOULD"><ins class="diff-chg">
SHOULD
</ins>
</em>
<del class="diff-old">choose
any
form.
If
no
form
is
specified
</del>
<ins class="diff-chg">be
used.
To
request
or
specify
Compacted
JSON-LD
document
form,
the
URI
</ins><code><ins class="diff-chg">
http://www.w3.org/ns/json-ld#compacted
</ins></code><em class="rfc2119" title="SHOULD"><ins class="diff-chg">
SHOULD
</ins></em><ins class="diff-chg">
be
used.
To
request
or
specify
Flattened
JSON-LD
document
form,
the
URI
</ins><code><ins class="diff-chg">
http://www.w3.org/ns/json-ld#flattened
</ins></code><em class="rfc2119" title="SHOULD"><ins class="diff-chg">
SHOULD
</ins></em><ins class="diff-chg">
be
used.
Please
note
that,
according
[
</ins><cite><a class="bibref" href="#bib-HTTP11"><ins class="diff-chg">
HTTP11
</ins></a></cite><ins class="diff-chg">
],
the
value
of
the
</ins><code><ins class="diff-chg">
profile
</ins></code><ins class="diff-chg">
parameter
has
to
be
enclosed
</ins>
in
<del class="diff-old">an
HTTP
response,
</del>
<ins class="diff-chg">quotes
(
</ins><code><ins class="diff-chg">
&quot;
</ins></code><ins class="diff-chg">
)
because
it
contains
special
characters
and,
if
multiple
profiles
are
combined,
whitespace.
</ins></p><p><ins class="diff-chg">
When
processing
</ins>
the
<del class="diff-old">form
must
</del>
<ins class="diff-chg">&quot;profile&quot;
media
type
parameter,
it
is
important
to
note
that
its
value
is
contains
one
or
more
URIs
and
</ins>
not
<ins class="diff-chg">IRIs.
In
some
cases
it
might
therefore
</ins>
be
<del class="diff-old">assumed
</del>
<ins class="diff-chg">necessary
</ins>
to
<del class="diff-old">take
any
particular
form.
</del>
<ins class="diff-chg">convert
between
IRIs
and
URIs
as
specified
in
</ins><cite><a href="http://tools.ietf.org/html/rfc3986#section-5.1"><ins class="diff-chg">
section
3
Relationship
between
IRIs
and
URIs
</ins></a></cite><ins class="diff-chg">
of
[
</ins><cite><a class="bibref" href="#bib-RFC3987"><ins class="diff-chg">
RFC3987
</ins></a></cite><ins class="diff-chg">
].
</ins></p>
</dd>
</dl>
</dd>
<dt>
Encoding
considerations:
</dt>
<dd>
<del class="diff-old">The
same
as
the
application/json
MIME
media
type.
</del>
<ins class="diff-chg">See
RFC
6839,
section
3.1.
</ins>
</dd>
<dt>
Security
considerations:
</dt>
<dd>
Since
JSON-LD
is
intended
to
be
a
pure
data
exchange
format
for
directed
graphs,
the
serialization
<del class="diff-old">should
not
</del>
<em class="rfc2119" title="SHOULD NOT">
<ins class="diff-chg">SHOULD
NOT
</ins>
</em>
be
passed
through
a
code
execution
mechanism
such
as
JavaScript's
<code>
eval()
</code>
<del class="diff-old">function.
</del>
<ins class="diff-chg">function
to
be
parsed.
</ins><br /><ins class="diff-chg">
JSON-LD
contexts
that
are
loaded
from
the
Web
over
non-secure
connections,
such
as
HTTP,
run
the
risk
of
modifying
the
JSON-LD
</ins><a class="tref internalDFN" title="active-context" href="#dfn-active-context"><ins class="diff-chg">
active
context
</ins></a><ins class="diff-chg">
in
a
way
that
could
compromise
security.
</ins>
It
is
<del class="diff-old">recommended
</del>
<ins class="diff-chg">advised
that
any
application
</ins>
that
<ins class="diff-new">depends
on
</ins>
a
<del class="diff-old">conforming
parser
does
not
attempt
</del>
<ins class="diff-chg">remote
context
for
mission
critical
purposes
vet
and
cache
the
remote
context
before
allowing
the
system
</ins>
to
<del class="diff-old">directly
evaluate
</del>
<ins class="diff-chg">use
it.
</ins><br /><ins class="diff-chg">
Given
that
JSON-LD
allows
</ins>
the
<ins class="diff-new">substitution
of
long
IRIs
with
short
terms,
</ins>
JSON-LD
<del class="diff-old">serialization
and
instead
purely
parse
</del>
<ins class="diff-chg">documents
may
expand
considerably
when
processed
and,
in
</ins>
the
<del class="diff-old">input
into
a
language-native
</del>
<ins class="diff-chg">worst
case,
the
resulting
</ins>
data
<del class="diff-old">structure.
</del>
<ins class="diff-chg">might
consume
all
of
the
recipient's
resources.
Applications
should
treat
any
data
with
due
skepticism.
</ins>
</dd>
<dt>
Interoperability
considerations:
</dt>
<dd>
Not
Applicable
</dd>
<dt>
Published
specification:
</dt>
<dd>
<del class="diff-old">The
JSON-LD
specification.
</del>
<ins class="diff-chg">http://www.w3.org/TR/json-ld
</ins>
</dd>
<dt>
Applications
that
use
this
media
type:
</dt>
<dd>
Any
programming
environment
that
requires
the
exchange
of
directed
graphs.
Implementations
of
JSON-LD
have
been
created
for
JavaScript,
Python,
Ruby,
<del class="diff-old">PHP
</del>
<ins class="diff-chg">PHP,
</ins>
and
C++.
</dd>
<dt>
Additional
information:
</dt>
<dd>
<dl>
<dt>
Magic
number(s):
</dt>
<dd>
Not
Applicable
</dd>
<dt>
File
extension(s):
</dt>
<dd>.jsonld
</dd>
<dt>
Macintosh
file
type
code(s):
</dt>
<dd>
TEXT
</dd>
</dl>
</dd>
<dt>
Person
&amp;
email
address
to
contact
for
further
information:
</dt>
<dd>
Manu
Sporny
&lt;msporny@digitalbazaar.com&gt;
</dd>
<dt>
Intended
usage:
</dt>
<dd>
Common
</dd>
<dt>
Restrictions
on
usage:
</dt>
<dd>
None
</dd>
<dt>
Author(s):
</dt>
<dd>
Manu
Sporny,
<ins class="diff-new">Dave
Longley,
</ins>
Gregg
Kellogg,
Markus
Lanthaler,
<del class="diff-old">Dave
Longley
</del>
<ins class="diff-chg">Niklas
Lindström
</ins>
</dd>
<dt>
Change
controller:
</dt>
<dd>
<abbr title="World Wide Web Consortium">
W3C
</abbr>
</dd>
</dl>
<p>
Fragment
identifiers
used
with
<a href="#application-ld-json">
application/ld+json
</a>
<del class="diff-old">resources
may
identify
a
node
in
the
linked
data
graph
expressed
in
the
resource.
This
idiom,
which
is
also
used
</del>
<ins class="diff-chg">are
treated
as
</ins>
in
RDF
<ins class="diff-new">syntaxes,
as
per
</ins><cite><a href="http://www.w3.org/TR/rdf11-concepts/#section-fragID"><ins class="diff-new">
RDF
1.1
Concepts
and
Abstract
Syntax
</ins></a></cite>
[
<cite>
<del class="diff-old">RDF-CONCEPTS
</del>
<a class="bibref" href="#bib-RDF11-CONCEPTS">
<ins class="diff-chg">RDF11-CONCEPTS
</ins>
</a>
</cite>
<del class="diff-old">],
gives
a
simple
way
to
&quot;mint&quot;
new,
document-local
IRIs
to
label
nodes
and
therefore
contributes
considerably
to
the
expressive
power
of
JSON-LD.
</del>
<ins class="diff-chg">].
</ins>
</p>
</div>
<div class="appendix informative section" id="acknowledgements">
<h2>
<span class="secno">
<del class="diff-old">D.
</del>
<ins class="diff-chg">F.
</ins>
</span>
Acknowledgements
</h2>
<p>
<em>
This
section
is
non-normative.
</em>
</p>
<p>
The
<del class="diff-old">editors
</del>
<ins class="diff-chg">authors
</ins>
would
like
to
<del class="diff-old">thank
</del>
<ins class="diff-chg">extend
a
deep
appreciation
and
the
most
sincere
thanks
to
</ins>
Mark
Birbeck,
who
<del class="diff-old">provided
</del>
<ins class="diff-chg">contributed
foundational
concepts
to
JSON-LD
via
his
work
on
RDFj.
JSON-LD
uses
</ins>
a
<del class="diff-old">great
deal
</del>
<ins class="diff-chg">number
</ins>
of
<ins class="diff-new">core
concepts
introduced
in
RDFj,
such
as
</ins>
the
<del class="diff-old">initial
push
behind
</del>
<ins class="diff-chg">context
as
a
mechanism
to
provide
an
environment
for
interpreting
JSON
data.
Mark
had
also
been
very
involved
in
</ins>
the
<del class="diff-old">JSON-LD
</del>
work
<del class="diff-old">via
his
</del>
<ins class="diff-chg">on
RDFa
as
well.
RDFj
built
upon
that
work.
JSON-LD
exists
because
of
the
</ins>
work
<ins class="diff-new">and
ideas
he
started
nearly
a
decade
ago
in
2004.
</ins></p><p><ins class="diff-new">
A
large
amount
of
thanks
goes
out
to
the
JSON-LD
Community
Group
participants
who
worked
through
many
of
the
technical
issues
</ins>
on
<del class="diff-old">RDFj,
Dave
</del>
<ins class="diff-chg">the
mailing
list
and
the
weekly
telecons
-
of
special
mention
are
François
Daoust,
Stéphane
Corlosquet,
Lin
Clark,
and
Zdenko
'Denny'
Vrandečić.
</ins></p><p><ins class="diff-chg">
The
work
of
David
I.
</ins>
Lehn
and
Mike
Johnson
<del class="diff-old">who
reviewed,
provided
feedback,
</del>
<ins class="diff-chg">are
appreciated
for
reviewing,
</ins>
and
<del class="diff-old">performed
</del>
<ins class="diff-chg">performing
</ins>
several
<ins class="diff-new">early
</ins>
implementations
of
the
<del class="diff-old">specification,
and
</del>
<ins class="diff-chg">specification.
Thanks
also
to
</ins>
Ian
<del class="diff-old">Davis,
who
created
</del>
<ins class="diff-chg">Davis
for
this
work
on
</ins>
RDF/JSON.
</p>
<p>
Thanks
<del class="diff-old">also
</del>
to
<del class="diff-old">Nathan
Rixham,
Bradley
P.
Allen,
Kingsley
Idehen,
Glenn
McDonald,
</del>
<ins class="diff-chg">the
following
individuals,
in
order
of
their
first
name,
for
their
input
on
the
specification:
Adrian
Walker,
</ins>
Alexandre
Passant,
<ins class="diff-new">Andy
Seaborne,
Ben
Adida,
Blaine
Cook,
Bradley
Allen,
Brian
Peterson,
Bryan
Thompson,
Conal
Tuohy,
Dan
Brickley,
</ins>
Danny
Ayers,
<del class="diff-old">Ted
Thibodeau
Jr.,
Olivier
Grisel,
Josh
Mandel,
Eric
Prud'hommeaux,
</del>
<ins class="diff-chg">Daniel
Leja,
Dave
Reynolds,
David
I.
Lehn,
</ins>
David
Wood,
<ins class="diff-new">Dean
Landolt,
Ed
Summers,
elf
Pavlik,
Eric
Prud'hommeaux,
Erik
Wilde,
Fabian
Christ,
Jon
A.
Frost,
Gavin
Carothers,
Glenn
McDonald,
</ins>
Guus
Schreiber,
<ins class="diff-new">Henri
Bergius,
Jose
María
Alvarez
Rodríguez,
Ivan
Herman,
Jack
Moffitt,
Josh
Mandel,
KANZAKI
Masahide,
Kingsley
Idehen,
Kuno
Woudt,
Larry
Garfield,
Mark
Baker,
Mark
MacGillivray,
Marko
Rodriguez,
Melvin
Carvalho,
Nathan
Rixham,
Olivier
Grisel,
Paolo
Ciccarese,
</ins>
Pat
Hayes,
<ins class="diff-new">Patrick
Logan,
Paul
Kuykendall,
Pelle
Braendgaard,
Peter
Williams,
Pierre-Antoine
Champin,
Richard
Cyganiak,
Roy
T.
Fielding,
</ins>
Sandro
Hawke,
<ins class="diff-new">Srecko
Joksimovic,
Stephane
Fellah,
Steve
Harris,
Ted
Thibodeau
Jr.,
Thomas
Steiner,
Tim
Bray,
Tom
Morris,
Tristan
King,
Sergio
Fernández,
Werner
Wilms,
</ins>
and
<del class="diff-old">Richard
Cyganiak
for
their
input
on
the
specification.
</del>
<ins class="diff-chg">William
Waites.
</ins>
</p>
</div>
<div id="references" class="appendix section" typeof="bibo:Chapter" resource="#references" rel="bibo:chapter">
<h2>
<span class="secno">
<del class="diff-old">E.
</del>
<ins class="diff-chg">G.
</ins>
</span>
References
</h2>
<div class="section" id="normative-references" typeof="bibo:Chapter" resource="#normative-references" rel="bibo:chapter">
<h3>
<span class="secno">
<del class="diff-old">E.1
</del>
<ins class="diff-chg">G.1
</ins>
</span>
Normative
references
</h3>
<dl class="bibliography" about="">
<dt id="bib-BCP47">
[BCP47]
</dt>
<dd rel="dcterms:requires">
A.
Phillips;
M.
Davis.
<a href="http://tools.ietf.org/html/bcp47">
<cite>
Tags
for
Identifying
Languages
</cite>
</a>.
September
2009.
IETF
Best
Current
Practice.
URL:
<a href="http://tools.ietf.org/html/bcp47">
http://tools.ietf.org/html/bcp47
</a>
</dd>
<del class="diff-old">[JSON-LD-API]
</del>
<dt id="bib-RFC2119">
<ins class="diff-chg">[RFC2119]
</ins>
</dt>
<dd rel="dcterms:requires">
<ins class="diff-chg">S.
Bradner.
</ins><a href="http://www.ietf.org/rfc/rfc2119.txt">
<cite>
<del class="diff-old">The
JSON-LD
API
1.0
Manu
Sporny,
Gregg
Kellogg,
Dave
Longley,
Markus
Lanthaler,
Editors.
World
Wide
Web
Consortium
(work
</del>
<ins class="diff-chg">Key
words
for
use
</ins>
in
<del class="diff-old">progress).
24
May
2012.
Editor's
Draft.
This
edition
of
the
JSON-LD
Syntax
specification
is
http://json-ld.org/spec/ED/json-ld-api/20120524/.
The
latest
edition
of
the
JSON-LD
Syntax
is
available
at
http://json-ld.org/spec/latest/json-ld-api/
[RDF-CONCEPTS]
</del>
<ins class="diff-chg">RFCs
to
Indicate
Requirement
Levels.
</ins></cite>
<del class="diff-old">RDF
1.1
Concepts
and
Abstract
Syntax
</del>
</a>
<del class="diff-old">Richard
Cyganiak,
David
Wood,
Editors.
World
Wide
Web
Consortium
(work
in
progress).
30
May
2012.
Editor's
Draft.
This
edition
of
the
JSON-LD
Syntax
specification
is
http://www.w3.org/TR/2011/WD-rdf11-concepts-20110830/.
The
latest
edition
of
the
JSON-LD
Syntax
</del>
<ins class="diff-chg">March
1997.
Internet
RFC
2119.
URL:
</ins><a href="http://www.ietf.org/rfc/rfc2119.txt"><ins class="diff-chg">
http://www.ietf.org/rfc/rfc2119.txt
</ins>
</a>
<del class="diff-old">is
available
at
http://www.w3.org/TR/rdf11-concepts/
</del>
</dd>
<dt id="bib-RFC3987">
[RFC3987]
</dt>
<dd rel="dcterms:requires">
M.
Dürst;
M.
Suignard.
<a href="http://www.ietf.org/rfc/rfc3987.txt">
<cite>
Internationalized
Resource
Identifiers
<del class="diff-old">(IRIs).
</del>
<ins class="diff-chg">(IRIs)
(RFC
3987)
</ins>
</cite>
</a>.
January
2005.
<del class="diff-old">Internet
RFC
3987.
</del>
<ins class="diff-chg">RFC.
</ins>
URL:
<a href="http://www.ietf.org/rfc/rfc3987.txt">
http://www.ietf.org/rfc/rfc3987.txt
</a>
</dd>
<dt id="bib-RFC4627">
[RFC4627]
</dt>
<dd rel="dcterms:requires">
D.
Crockford.
<a href="http://www.ietf.org/rfc/rfc4627.txt">
<cite>
The
application/json
Media
Type
for
JavaScript
Object
Notation
(JSON)
<ins class="diff-new">(RFC
4627)
</ins>
</cite>
</a>.
July
2006.
<del class="diff-old">Internet
RFC
4627.
</del>
<ins class="diff-chg">RFC.
</ins>
URL:
<a href="http://www.ietf.org/rfc/rfc4627.txt">
http://www.ietf.org/rfc/rfc4627.txt
</a>
</dd>
<dt id="bib-RFC5988">
[RFC5988]
</dt>
<dd rel="dcterms:requires">
<ins class="diff-chg">M.
Nottingham.
</ins>
<cite>
<a href="http://www.ietf.org/rfc/rfc5988.txt">
Web
Linking
</a>.
</cite>
<del class="diff-old">M.
Nottingham.
Editor.
</del>
October
2010.
<del class="diff-old">IETF
Standard.
</del>
<ins class="diff-chg">Internet
RFC
5988.
</ins>
URL:
<del class="diff-old">http://tools.ietf.org/rfc/rfc5988.txt
</del>
<a href="http://www.ietf.org/rfc/rfc5988.txt">
<ins class="diff-chg">http://www.ietf.org/rfc/rfc5988.txt
</ins>
</a>
</dd>
</dl>
</div>
<div class="section" id="informative-references" typeof="bibo:Chapter" resource="#informative-references" rel="bibo:chapter">
<h3>
<span class="secno">
<del class="diff-old">E.2
</del>
<ins class="diff-chg">G.2
</ins>
</span>
Informative
references
</h3>
<dl class="bibliography" about="">
<del class="diff-old">[RDF-PRIMER]
</del>
<dt id="bib-HTTP11">
<ins class="diff-chg">[HTTP11]
</ins>
</dt>
<del class="diff-old">Frank
Manola;
Eric
Miller.
</del>
<dd rel="dcterms:references">
<ins class="diff-chg">R.
Fielding
et
al.
</ins><a href="http://www.ietf.org/rfc/rfc2616.txt">
<cite>
<del class="diff-old">RDF
Primer.
</del>
<ins class="diff-chg">Hypertext
Transfer
Protocol
-
HTTP/1.1
</ins>
</cite>
</a>.
<ins class="diff-new">June
1999.
RFC
2616.
URL:
</ins><a href="http://www.ietf.org/rfc/rfc2616.txt"><ins class="diff-new">
http://www.ietf.org/rfc/rfc2616.txt
</ins>
</a>
</dd>
<dt id="bib-JSON-LD-API">
<ins class="diff-new">[JSON-LD-API]
</ins></dt><dd rel="dcterms:references"><ins class="diff-new">
Markus
Lanthaler,
Gregg
Kellogg,
Manu
Sporny,
Editors.
</ins><cite><a href="http://www.w3.org/TR/2013/WD-json-ld-api-20130411/"><ins class="diff-new">
JSON-LD
1.0
Processing
Algorithms
and
API
</ins></a>.</cite><ins class="diff-new">
W3C
Working
Draft
(work
in
progress).
URL:
</ins><a href="http://www.w3.org/TR/2013/WD-json-ld-api-20130411/"><ins class="diff-new">
http://www.w3.org/TR/2013/WD-json-ld-api-20130411/
</ins></a>.<ins class="diff-new">
The
latest
edition
is
available
at
</ins><a href="http://www.w3.org/TR/json-ld-api/"><ins class="diff-new">
http://www.w3.org/TR/json-ld-api/
</ins></a></dd><dt id="bib-JSON-LD-TESTS"><ins class="diff-new">
[JSON-LD-TESTS]
</ins></dt><dd rel="dcterms:references"><cite><a href="http://www.w3.org/2013/json-ld-tests/"><ins class="diff-new">
JSON-LD
1.0
Test
Suite
</ins></a></cite>.<ins class="diff-new">
W3C
Test
Suite
(work
in
progress).
URL:
</ins><a href="http://www.w3.org/2013/json-ld-tests/"><ins class="diff-new">
http://www.w3.org/2013/json-ld-tests/
</ins></a></dd><dt id="bib-MICRODATA"><ins class="diff-new">
[MICRODATA]
</ins></dt><dd rel="dcterms:references"><ins class="diff-new">
Ian
Hickson,
Editor.
</ins><cite><a href="http://www.w3.org/TR/2012/WD-microdata-20121025/"><ins class="diff-new">
HTML
Microdata
</ins></a>.</cite><ins class="diff-new">
25
October
2012.
W3C
Working
Draft
(work
in
progress).
URL:
</ins><a href="http://www.w3.org/TR/2012/WD-microdata-20121025/"><ins class="diff-new">
http://www.w3.org/TR/2012/WD-microdata-20121025/
</ins></a>.<ins class="diff-new">
The
latest
edition
is
available
at
</ins><a href="http://www.w3.org/TR/microdata/"><ins class="diff-new">
http://www.w3.org/TR/microdata/
</ins></a></dd><dt id="bib-MICROFORMATS"><ins class="diff-new">
[MICROFORMATS]
</ins></dt><dd rel="dcterms:references"><a href="http://microformats.org"><cite><ins class="diff-new">
Microformats
</ins></cite></a>.<ins class="diff-new">
URL:
</ins><a href="http://microformats.org"><ins class="diff-new">
http://microformats.org
</ins></a></dd><dt id="bib-RDF-SCHEMA"><ins class="diff-new">
[RDF-SCHEMA]
</ins></dt><dd rel="dcterms:references"><ins class="diff-new">
Dan
Brickley;
Ramanathan
V.
Guha.
</ins><a href="http://www.w3.org/TR/2004/REC-rdf-schema-20040210"><cite><ins class="diff-new">
RDF
Vocabulary
Description
Language
1.0:
RDF
Schema
</ins></cite></a>.
10
February
2004.
W3C
Recommendation.
URL:
<del class="diff-old">http://www.w3.org/TR/2004/REC-rdf-primer-20040210/
</del>
<a href="http://www.w3.org/TR/2004/REC-rdf-schema-20040210">
<ins class="diff-chg">http://www.w3.org/TR/2004/REC-rdf-schema-20040210
</ins></a></dd><dt id="bib-RDF11-CONCEPTS"><ins class="diff-chg">
[RDF11-CONCEPTS]
</ins></dt><dd rel="dcterms:references"><ins class="diff-chg">
Richard
Cyganiak,
David
Wood,
Editors.
</ins><cite><a href="http://www.w3.org/TR/2013/WD-rdf11-concepts-20130115/"><ins class="diff-chg">
RDF
1.1
Concepts
and
Abstract
Syntax.
</ins></a></cite><ins class="diff-chg">
15
January
2013.
W3C
Working
Draft
(work
in
progress).
URL:
</ins><a href="http://www.w3.org/TR/2013/WD-rdf11-concepts-20130115/"><ins class="diff-chg">
http://www.w3.org/TR/2013/WD-rdf11-concepts-20130115/
</ins></a>.<ins class="diff-chg">
The
latest
edition
is
available
at
</ins><a href="http://www.w3.org/TR/rdf11-concepts/"><ins class="diff-chg">
http://www.w3.org/TR/rdf11-concepts/
</ins>
</a>
</dd>
<dt id="bib-RDFA-CORE">
[RDFA-CORE]
</dt>
<dd rel="dcterms:references">
Shane
<del class="diff-old">McCarron;
</del>
<ins class="diff-chg">McCarron
</ins>
et
al.
<a href="http://www.w3.org/TR/2012/REC-rdfa-core-20120607/">
<cite>
RDFa
Core
1.1:
Syntax
and
processing
rules
for
embedding
RDF
through
<del class="diff-old">attributes.
</del>
<ins class="diff-chg">attributes
</ins>
</cite>
</a>.
7
June
2012.
W3C
Recommendation.
URL:
<del class="diff-old">http://www.w3.org/TR/rdfa-core/
</del>
<a href="http://www.w3.org/TR/2012/REC-rdfa-core-20120607/">
<ins class="diff-chg">http://www.w3.org/TR/2012/REC-rdfa-core-20120607/
</ins>
</a>
</dd>
<del class="diff-old">[TURTLE-TR]
</del>
<dt id="bib-RFC3986">
<ins class="diff-chg">[RFC3986]
</ins>
</dt>
<dd rel="dcterms:references">
<ins class="diff-chg">T.
Berners-Lee;
R.
Fielding;
L.
Masinter.
</ins><a href="http://www.ietf.org/rfc/rfc3986.txt"><cite><ins class="diff-chg">
Uniform
Resource
Identifier
(URI):
Generic
Syntax
(RFC
3986)
</ins></cite></a>.<ins class="diff-chg">
January
2005.
RFC.
URL:
</ins><a href="http://www.ietf.org/rfc/rfc3986.txt"><ins class="diff-chg">
http://www.ietf.org/rfc/rfc3986.txt
</ins></a></dd><dt id="bib-RFC6906"><ins class="diff-chg">
[RFC6906]
</ins></dt><dd rel="dcterms:references"><ins class="diff-chg">
Erik
Wilde.
</ins><cite><a href="http://www.ietf.org/rfc/rfc6906.txt"><ins class="diff-chg">
The
'profile'
Link
Relation
Type
</ins></a>.</cite><ins class="diff-chg">
March
2013.
Internet
RFC
6906.
URL:
</ins><a href="http://www.ietf.org/rfc/rfc6906.txt"><ins class="diff-chg">
http://www.ietf.org/rfc/rfc6906.txt
</ins></a></dd><dt id="bib-TURTLE"><ins class="diff-chg">
[TURTLE]
</ins></dt><dd rel="dcterms:references">
Eric
Prud'hommeaux,
Gavin
<del class="diff-old">Carothers.
</del>
<ins class="diff-chg">Carothers,
Editors.
</ins>
<cite>
<a href="http://www.w3.org/TR/2013/CR-turtle-20130219/">
Turtle:
Terse
RDF
Triple
Language.
</a>
</cite>
<del class="diff-old">09
August
2011.
</del>
<ins class="diff-chg">19
February
2013.
</ins>
W3C
<del class="diff-old">Working
Draft.
</del>
<ins class="diff-chg">Candidate
Recommendation
(work
in
progress).
</ins>
URL:
<del class="diff-old">http://www.w3.org/TR/2011/WD-turtle-20110809/
</del>
<a href="http://www.w3.org/TR/2013/CR-turtle-20130219/">
<ins class="diff-chg">http://www.w3.org/TR/2013/CR-turtle-20130219/
</ins></a>.<ins class="diff-chg">
The
latest
edition
is
available
at
</ins><a href="http://www.w3.org/TR/turtle/"><ins class="diff-chg">
http://www.w3.org/TR/turtle/
</ins>
</a>
</dd>
</dl>
</div>
</div>
</body>
</html>

